Function at 0x435252
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov esi, esp
push eax
sub esp, 0xc
mov ebx, esp
sub esp, 0x1c
mov dword [esi + 8], esp
sub esp, 0x28
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x10], esp
sub esp, 0x10
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x14], esp
mov dword [edx], 0x3f50d29
mov dword [edx + 4], 0x7910189
mov dword [edx + 8], 0x3bdf0590
mov dword [edx + 0xc], 0x3ffa39a5
mov dword [edx + 0x10], 0x33ab3daa
mov dword [edx + 0x14], 0x37d331ba
mov dword [edx + 0x18], 0x2b2a3511
lea eax, [edx + 0x1c]
mov dword [esi + 0x1c], eax
mov dword [edx + 0x1c], 0
mov dword [edx + 0x20], 0
mov byte [edx + 0x24], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x24
ja 0x435187
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [edx + edi]
lea eax, [ecx + 0x414bfdd6]
and eax, edi
add ecx, edi
add ecx, 0x414bfdd6
add eax, eax
sub ecx, eax
mov dword [esi + 0x24], ecx
mov eax, dword [esi + 0x24]
add al, 0x26
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x25
jb 0x435150
mov eax, dword [esi + 8]
mov edi, eax
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, eax
add edi, 0x1c
xor ecx, ecx
mov edx, dword [esi + 0x1c]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
push dword [esi + 0x20]
push 8
push ebx
push 0xd
push eax
push 0
call dword [0x449d14]
mov ecx, ebx
not eax
shr eax, 0x1f
mov edi, dword [ebp + 8]
jmp dword [eax*4 + 0x447244]
mov word [ecx], 0x43
mov word [ecx + 2], 0x3a
mov dword [ecx + 4], 0x5c
mov ebx, dword [esi + 0x10]
mov dword [ebx], 0
push 0xd77f2487
push dword [0x449d0c]
mov dword [esi + 8], ecx
call fcn.0043c630
add esp, 8
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push dword [esi + 8]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44724c]
mov eax, dword [esi + 0x18]
mov dword [eax], edi
mov eax, dword [esi + 0x14]
mov dword [eax], 0
xor edx, edx
xor ecx, ecx
cmp edx, 4
setb cl
mov ebx, dword [esi + 0xc]
jmp dword [ecx*4 + 0x447254]
mov ecx, dword [case.0x4351c3.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor eax, eax
test edx, edx
sete al
jmp dword [eax*4 + 0x44726c]
lea ecx, [ebx + edx*4]
add ecx, 0xfffffffc
jmp 0x435273
mov ecx, dword [esi + 0x10]
imul eax, dword [ecx], 0x1a5845
add eax, 0xebde8a13
mov dword [ebx + edx*4], eax
mov byte [edi + 8], 0
je 0x4352f0
add edi, 8
cmp eax, 0x100
jb 0x435300
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 8], edi
mov edx, eax
and edx, 0xfd
mov ecx, eax
and ecx, 2
mov edi, ecx
xor edi, 2
imul edi, edx
or edx, 2
imul edx, ecx
movzx ecx, word [edx + edi + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov edi, dword [esi + 8]
mov word [edi - 2], cx
add edi, 0xfffffffe
shr ebx, 8
cmp eax, 0xffff
mov eax, ebx
ja 0x4352a0
cmp ebx, 0xf
ja 0x435307
movzx eax, byte [ebx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x43532f
mov byte [edi + 7], 0x30
add edi, 7
jmp 0x435332
mov ebx, eax
cmp ebx, 0xf
jbe 0x4352e1
mov ecx, ebx
and ecx, 0xfffffd
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
xor eax, 2
imul eax, ecx
movzx eax, word [eax + ebx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0xc]
mov eax, 0xfffffff7
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 9], 0
lea eax, [eax + 1]
jne case.default.0x435353
xor ecx, ecx
xor edx, edx
cmp eax, ecx
setne dl
jmp dword [edx*4 + 0x447274]
mov byte [edi + ecx - 1], 0x30
dec ecx
xor edx, edx
cmp eax, ecx
setne dl
jmp dword [edx*4 + 0x447274]
mov eax, dword [esi + 0x18]
mov edi, dword [eax]
add edi, 8
mov dword [eax], edi
mov eax, dword [esi + 0x14]
mov edx, dword [eax]
inc edx
mov dword [eax], edx
mov ecx, dword [case.0x4351c3.16]
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp edx, 4
setb cl
jmp dword [ecx*4 + 0x447254]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp ecx
push eax
mov ecx, esp
push eax
mov dword [esi + 0x1c], esp
jmp dword [0x4472a0]
mov byte [ecx], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
push eax
mov ebx, esp
push eax
mov edi, esp
sub esp, 0xc
mov edx, esp
mov byte [ecx], 0
jmp dword [0x4472a4]
mov dword [esi + 0x28], edx
mov dword [esi + 0x20], ecx
push 0x68
push 7
push 0x100080
push dword [esi + 0x1c]
push eax
call fcn.0043d1d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4472ac]
mov eax, dword [esi + 0x20]
movzx eax, byte [eax]
mov ecx, dword [case.0x43553f.21]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x43553f.24]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x400
call fcn.00438aa0
add esp, 4
mov dword [esi + 0x24], edi
mov dword [esi + 0x30], eax
mov dword [edi], eax
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov dword [esi + 0x2c], eax
mov dword [esi + 8], 0x82858487
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x4354dc
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + 0xc1]
mov edi, 0xd386af3e
sub edi, eax
or edi, ecx
not ecx
or ecx, edx
add edi, ecx
mov eax, 0xfffffffe
sub eax, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xb9
mov ecx, dword [esi]
mov byte [esi + ecx + 8], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x4354a0
mov eax, dword [esi + 8]
mov edi, dword [0x449d18]
test edi, edi
je case.default.0x43553f
xor ecx, ecx
mov edx, dword [0x449d1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3bebd150
je 0x435510
inc ecx
cmp edi, ecx
jne 0x435500
jmp case.default.0x43553f
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, eax
je case.default.0x43553f
push 0x2f
push 0x400
push dword [esi + 0x30]
push ebx
push dword [esi + 0x2c]
push 5
push dword [0x449d20]
push ecx
call fcn.0043ab10
add esp, 0x20
not eax
shr eax, 0x1f
mov edi, dword [esi + 0x28]
jmp dword [eax*4 + 0x4472b4]
mov eax, dword [esi + 0x24]
push dword [eax]
call fcn.00438bf0
add esp, 4
jmp dword [0x4472ec]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov dword [esi + 8], 0x82858487
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xf
ja 0x4355cd
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 8]
lea edi, [ecx + 0xc1]
mov ebx, 0xd386af3e
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xb9
mov edx, dword [esi]
mov byte [esi + edx + 8], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x10
jb 0x435590
mov ecx, dword [0x449d18]
test ecx, ecx
je case.0x43553f.14
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x449d1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4356b0
inc edi
cmp ecx, edi
jne 0x4355f0
jmp case.0x43553f.14
jmp dword [0x4472c8]
xor ebx, ebx
mov eax, dword [case.0x43553f.8]
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
xor ecx, ecx
cmp ebx, dword [eax]
setb cl
jmp dword [ecx*4 + 0x4472dc]
mov eax, dword [eax + ebx*4 + 4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov ecx, edi
push 0
push eax
call fcn.00438ff0
mov eax, dword [ebp + 0xc]
neg eax
mov eax, 0
sbb eax, dword [ebp + 0x10]
setl al
movzx eax, al
shl eax, 0x14
or eax, 1
mov ecx, edi
push eax
call fcn.00439010
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4472e4]
mov ecx, edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0
call fcn.00439240
test eax, eax
mov eax, dword [esi + 0x20]
setns byte [eax]
mov ecx, edi
call fcn.00439150
inc ebx
mov eax, dword [case.0x43553f.8]
mov edi, dword [esi + 0x28]
jmp case.0x43553f.6
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x43553f.14
push eax
push 1
push dword [0x449d20]
push ecx
call fcn.0043ab10
add esp, 0x10
jmp case.0x43553f.14
jmp dword [0x4472f4]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov dword [esi + 8], 0x82858487
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xf
ja 0x43574d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 8]
lea edi, [ecx + 0xc1]
mov ebx, 0xd386af3e
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xb9
mov edx, dword [esi]
mov byte [esi + edx + 8], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x10
jb 0x435710
mov ecx, dword [0x449d18]
test ecx, ecx
je 0x4356d0
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x449d1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x435790
inc edi
cmp ecx, edi
jne 0x435770
jmp 0x4356d0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x4356d0
push eax
push 1
push dword [0x449d20]
push ecx
call fcn.0043ab10
add esp, 0x10
jmp 0x4356d0
mov esi, dword [ebp - 0x10]
mov eax, dword [esi]
mov word [eax], 0x5c
mov eax, dword [esi]
add eax, 2
mov dword [esi], eax
mov eax, dword [edi]
add eax, 2
mov dword [edi], eax
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x3c8]
mov eax, dword [ecx + eax*4]
mov edi, dword [ebp - 0x20]
jmp eax
mov eax, dword [edi]
mov ax, word [eax + 4]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov eax, dword [eax + ecx*4]
jmp eax
mov ebx, dword [edi]
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x148]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x294], ecx
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x294]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov eax, ebx
add eax, 0xfffffffe
mov dword [ebp - 0x1fc], 1
mov ecx, dword [ebp - 0x200]
mov edx, dword [ebp - 0x1fc]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax]
mov ecx, dword [ebp - 0x334]
mov edx, dword [ebp - 0x338]
mov ecx, dword [edx + ecx*4]
jmp ecx
call fcn.00409ab0
mov edx, dword [ebp - 0x18]
mov eax, dword [esi]
add eax, 0xfffffffe
mov dword [edx], eax
mov eax, dword [edi]
mov dword [esi], eax
mov dword [ebp - 0x254], 1
mov eax, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x254]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x42c], 0
mov eax, dword [ebp - 0x430]
mov ecx, dword [ebp - 0x42c]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
jmp eax
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x408]
mov ecx, dword [ebp - 0x404]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [edi]
add eax, 2
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4416f0
call fcn.00437390
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x29c], ecx
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x29c]
mov eax, dword [eax + ecx*4]
jmp eax
pushal
std
invalid
push ebp
rcr byte [ebx + 0x33], 0x65
jl 0x4365aa
stosd dword es:[edi], eax
cmp eax, 0x8b03851b
inc ebp
les ecx, [ebx + 0x48bc04d]
cmp edi, 0x34dbe8e0
call fcn.00409ab0
mov dword [ebp - 0x17c], 0
call fcn.00409ab0
mov dword [ebp - 0x17c], 0
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [ebp - 0x2c4], ecx
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax + 2]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [ebp - 0x2bc], ecx
mov eax, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov eax, dword [edi]
mov dword [ebp - 0x35c], 0
mov ecx, dword [ebp - 0x360]
mov edx, dword [ebp - 0x35c]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov dh, 0xac
clc
fdiv dword [edx + 0x6bae0530]
mov eax, 0x18f135af
mov al, 0xe4
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov eax, dword [edi]
mov word [eax], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [edi]
mov dword [ebx], eax
mov dword [ebp - 0x424], 1
mov eax, dword [ebp - 0x428]
mov ecx, dword [ebp - 0x424]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x210]
mov eax, dword [ecx + eax*4]
mov esi, dword [ebp - 0x10]
jmp eax
mov eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x158]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
add eax, 2
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4416f0
call fcn.00437390
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x314], ecx
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x314]
mov eax, dword [eax + ecx*4]
jmp eax
inc ebp
in al, 0xe
add bl, bh
xchg esi, eax
mov esi, 0x3b4f7bec
add al, 0x8b
inc ebp
int3
call fcn.00409ab0
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x23c]
mov eax, dword [eax + ecx*4]
jmp eax
sub al, 0xab
nop
mov esp, 0xa12ae69b
mov word [ebx], 0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + eax*4]
jmp eax
mov esi, dword [edi]
sub esp, 4
mov dword [esp], esi
call fcn.0041a290
add esp, 4
lea eax, [esi + eax*2]
mov dword [ebx], eax
mov eax, dword [ebp - 0x3f4]
mov ecx, dword [ebp - 0x3f8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [ebp - 0x2d8]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [ebp - 0x19]
mov bl, al
and ebx, 1
mov dword [ebp - 0x104], ebx
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x2b4], 0
mov eax, dword [ebp - 0x2b8]
mov ecx, dword [ebp - 0x2b4]
mov eax, dword [eax + ecx*4]
mov edi, dword [ebp - 0x20]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x2dc], 1
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2dc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebx]
xor ecx, ecx
sub eax, 3
sete cl
mov dword [ebp - 0x2cc], ecx
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2cc]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
jmp eax
mov eax, dword [ebx]
mov ecx, dword [edi]
neg ecx
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [eax + edx*2]
sar eax, 1
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
mov edx, eax
and edx, ecx
add edx, eax
mov ebx, dword [ebp - 0x28]
mov dword [ebx], edx
mov eax, dword [ebx]
xor ecx, ecx
sub eax, 1
sete cl
mov dword [ebp - 0x3ec], ecx
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x3ec]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, dword [eax - 0x49]
sbb cl, byte [ebx - 0xab7b]
dec dword [ebx - 0xaf73]
dec dword [ebx - 0x1f007efc]
adc ecx, dword [ecx - 0x7a74f43c]
jl 0x43695d
invalid
invalid
mov eax, dword [edi]
mov word [eax + 4], 0x5c
mov eax, dword [edi]
mov word [eax + 6], 0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [0x3a38d4ec], eax
push dword [eax - 0x7cf97497]
sar dh, 0x89
add dword [ebx - 0x74f976f9], ecx
inc ebp
test byte [ebx + 0x48b804d], cl
cmp edi, 0x30f0e8e0
call fcn.00409ab0
mov ecx, dword [ebx]
xor eax, eax
sub ecx, 2
sete cl
call fcn.00409ab0
mov ecx, dword [ebx]
xor eax, eax
sub ecx, 2
sete cl
mov dword [ebp - 0x3b4], 0
mov edx, dword [ebp - 0x3b8]
mov esi, dword [ebp - 0x3b4]
mov edx, dword [edx + esi*4]
jmp edx
mov eax, dword [ebx]
mov ecx, dword [edi]
mov edx, dword [esi]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0041ed10
add esp, 0xc
mov eax, dword [ebx]
mov ecx, eax
xor ecx, 1
and eax, 0x7ffffffe
add eax, eax
sub eax, ecx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
mov dword [esi], eax
mov eax, dword [ebx]
mov ecx, dword [edi]
lea eax, [ecx + eax*2 - 2]
mov dword [edi], eax
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ecx + eax*4]
mov edi, dword [ebp - 0x20]
jmp eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [ebp - 0x3a4], ecx
mov eax, dword [ebp - 0x3a8]
mov ecx, dword [ebp - 0x3a4]
mov eax, dword [eax + ecx*4]
jmp eax
mov byte [esi], 1
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
movzx eax, bx
mov dword [ebp - 0x27c], 1
mov ecx, dword [ebp - 0x280]
mov edx, dword [ebp - 0x27c]
mov ecx, dword [ecx + edx*4]
jmp ecx
push ss
fld xword [ebx - 0x70e336af]
cmp ecx, dword [ebx + 0x4d8ba445]
mov al, byte [0xff81048b]
loopne 0x436b1f
pop esi
pop esi
jo 0x436b01
push esp
daa
clc
xchg edx, eax
inc esp
scasd eax, dword es:[edi]
mov dword [0xbc458b2d], edi
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x10c], 1
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x10c]
mov eax, dword [eax + ecx*4]
jmp eax
inc dword [ecx]
add byte [eax], al
add byte [ebx - 0x4177b], cl
dec dword [ebx - 0x41373]
dec dword [ebx - 0x1f0077fc]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + eax*4]
jmp eax
int3
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ebp - 0x45c]
mov ecx, dword [ebp - 0x460]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov bx, word [eax + 2]
mov eax, dword [ebp - 0x28c]
mov ecx, dword [ebp - 0x290]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x22c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov eax, dword [ebx]
mov cx, word [eax]
xor eax, eax
test cx, cx
setne cl
mov dword [ebp - 0x40c], 1
mov edx, dword [ebp - 0x410]
mov esi, dword [ebp - 0x40c]
mov edx, dword [edx + esi*4]
jmp edx
mov al, cl
and eax, 1
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x3b0]
mov ecx, dword [ebp - 0x3ac]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x278]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x25c], 1
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x25c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
jmp eax
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
movzx eax, word [ebx]
mov dword [ebp - 0x134], 0
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebx]
mov ax, word [eax + 4]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x1bc], ecx
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov dword [esi], eax
mov dword [ebp - 0x21c], 0
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x41c]
mov ecx, dword [ebp - 0x420]
mov eax, dword [ecx + eax*4]
mov ebx, esi
jmp eax
mov eax, dword [esi]
add eax, 0xfffffffe
mov dword [esi], eax
mov eax, dword [ebp - 0x2fc]
mov ecx, dword [ebp - 0x300]
mov eax, dword [ecx + eax*4]
jmp eax
invalid
call fcn.00409ab0
mov dword [ebp - 0x3bc], 1
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [ebp - 0x3bc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov word [ebx], 0
mov dword [ebp - 0x15c], 1
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x15c]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov al, byte [esi]
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ecx + edx*4]
jmp ecx
xchg ebp, eax
mov word [ebp - 0x5c], fs
add dword [esi - 0x5f2538c], 0x78bf4c7
mov word [eax], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
add eax, 2
mov ecx, dword [ebp - 0x39c]
mov edx, dword [ebp - 0x3a0]
mov ecx, dword [edx + ecx*4]
mov esi, dword [ebp - 0x10]
jmp ecx
call fcn.00409ab0
push eax
mov edx, esp
push eax
mov edi, esp
mov dword [ebp - 0x49c], 1
mov eax, dword [ebp - 0x4a0]
mov ecx, dword [ebp - 0x49c]
mov eax, dword [eax + ecx*4]
jmp eax
call 0x75268761
mov eax, dword [0x567ced95]
push es
dec esi
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov word [eax], 0x5c
mov eax, dword [edi]
mov word [eax + 2], 0
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0x2f0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0x304], ecx
mov eax, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x304]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x498]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
push eax
mov edx, esp
mov dword [edi], ebx
mov dword [ebp - 0x464], 1
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x464]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov cx, word [eax]
xor eax, eax
sub cx, 0x5c
sete cl
mov dword [ebp - 0x234], 1
mov edx, dword [ebp - 0x238]
mov esi, dword [ebp - 0x234]
mov edx, dword [edx + esi*4]
jmp edx
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0x43c], ecx
mov eax, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x43c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x224], 1
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x224]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
jmp eax
call fcn.00409ab0
mov eax, dword [edi]
mov cx, word [eax]
xor eax, eax
test cx, cx
sete cl
mov dword [ebp - 0x2ac], 0
mov edx, dword [ebp - 0x2b0]
mov esi, dword [ebp - 0x2ac]
mov edx, dword [edx + esi*4]
jmp edx
mov eax, dword [edi]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x30c], ecx
mov eax, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [eax + ecx*4]
jmp eax
dec edx
add esp, dword [ebx + 0x43ca2ca1]
or al, 0x8b
add cl, byte [ecx - 0x6bba74fa]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x1d4], 1
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [ebp - 0x2f8]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebx]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x5c
call fcn.00437350
add esp, 8
mov edi, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebx], eax
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0x3fc], ecx
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x3fc]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [edi]
mov ax, word [eax]
mov ecx, dword [ebp - 0x3e4]
mov edx, dword [ebp - 0x3e8]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ecx]
add eax, 2
mov dword [ecx], eax
mov ebx, dword [esi]
mov eax, dword [ebp - 0x36c]
mov ecx, dword [ebp - 0x370]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [edi]
mov ax, word [eax + 2]
xor ecx, ecx
sub ax, 0x3a
sete cl
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x2c]
jmp eax
mov eax, dword [ebx]
add eax, 2
mov dword [ebx], eax
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ecx + eax*4]
jmp eax
push eax
push eax
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx + eax*4]
jmp eax
cdq
push ds
inc edi
adc dword [ecx + 0x27], ebx
or eax, 0x1f895067
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x218]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409ab0
mov dword [ebp - 0x1cc], 1
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, cl
and eax, 1
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
jmp eax
invalid
sbb ecx, edi
scasb al, byte es:[edi]
aaa
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ecx + eax*4]
jmp eax
jbe 0x4372c0
jmp 0x4372f6
inc ebp
mov word [ebx + 0x48b884d], cs
cmp edi, 0x83c888e0
loopne 0x437306
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x3d0]
mov ecx, dword [ebp - 0x3cc]
mov eax, dword [eax + ecx*4]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
jmp eax
test dword [esp + edi*8], esi
invalid
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret