Function at 0x435b9b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov esi, esp
mov ebx, dword [ebp + 8]
push eax
mov dword [esi + 4], esp
sub esp, 0x10
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 0x18], 0xab15adc1
mov dword [esi + 0x1c], 0x9709a931
mov dword [esi + 0x20], 0x933f9508
mov dword [esi + 0x24], 0x9fd29105
mov dword [esi + 0x28], 0x9b339d02
mov dword [esi + 0x2c], 0x872b9902
mov dword [esi + 0x30], 0x838285e9
lea eax, [esi + 0x34]
mov dword [esi + 0x14], eax
mov dword [esi + 0x34], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x1f
ja 0x43587e
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edi, byte [esi + ecx + 0x18]
lea ecx, [eax + edi]
add ecx, 0xfff4619a
add eax, 0xfff4619a
and eax, edi
add eax, eax
mov edi, ecx
not edi
and edi, eax
not eax
and eax, ecx
sub eax, edi
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0xca
mov ecx, dword [esi]
mov byte [esi + ecx + 0x18], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x20
jb 0x435840
lea edi, [esi + 0x38]
lea edx, [esi + 0x18]
mov eax, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esi + 0x54]
xor ecx, ecx
mov eax, dword [esi + 0x14]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, esi
push eax
push 8
push edx
push 0xd
lea eax, [esi + 0x38]
push eax
push 0
call dword [0x449a08]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447184]
mov dword [esi + 0x18], 0x3a0043
mov dword [esi + 0x1c], 0x5c
mov eax, dword [esi + 4]
mov dword [eax], 0
push 0xd77f2487
push dword [0x449a00]
mov edi, eax
call fcn.0043c6f0
add esp, 8
push 0
push 0
push 0
push 0
push edi
push 0
push 0
lea ecx, [esi + 0x18]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44718c]
mov eax, dword [esi + 0x10]
mov dword [eax], ebx
xor eax, eax
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [edx], eax
mov ecx, dword [case.0x4358b5.7]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4471a4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4471ac]
mov edi, dword [esi + 8]
lea ecx, [edi + eax*4]
add ecx, 0xfffffffc
jmp 0x435966
mov ecx, dword [esi + 4]
mov edi, dword [esi + 8]
mov edx, dword [ecx]
imul ecx, edx, 0x1a5845
imul edx, edx, 0x34b08a
and edx, 0xd7bd1426
xor ecx, 0xebde8a13
add ecx, edx
mov dword [edi + eax*4], ecx
mov byte [ebx + 8], 0
je 0x4359e0
add ebx, 8
cmp ecx, 0x100
jb 0x4359f0
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, cl
movzx edx, word [edx + edx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [ebx - 2], dx
add ebx, 0xfffffffe
shr eax, 8
cmp ecx, 0xffff
mov ecx, eax
ja 0x4359a0
cmp eax, 0xf
ja 0x4359f7
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [ebx - 1], al
dec ebx
jmp 0x435a06
mov byte [ebx + 7], 0x30
add ebx, 7
jmp 0x435a06
mov eax, ecx
cmp eax, 0xf
jbe 0x4359c4
movzx eax, word [eax + eax + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [ebx - 2], ax
add ebx, 0xfffffffe
mov eax, 0xfffffff7
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 9], 0
lea eax, [eax + 1]
jne case.default.0x435a23
xor ecx, ecx
xor edx, edx
cmp eax, ecx
setne dl
jmp dword [edx*4 + 0x4471b4]
mov byte [ebx + ecx - 1], 0x30
dec ecx
xor edx, edx
cmp eax, ecx
setne dl
jmp dword [edx*4 + 0x4471b4]
mov eax, dword [esi + 0x10]
mov ebx, dword [eax]
add ebx, 8
mov dword [eax], ebx
mov edx, dword [esi + 0xc]
mov eax, dword [edx]
mov ecx, dword [case.0x4358b5.17]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
inc eax
jmp 0x435920
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov ecx, dword [case.0x435b94.9]
jmp case.0x435b94.6
push 0x400
call fcn.00438de0
add esp, 4
mov esi, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], 0x3c3d3e3f
mov dword [esp + 0xc], 0
mov word [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x435b39
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
lea edi, [eax + 0xa8]
and edi, edx
mov ebx, 0x1904aa57
sub ebx, eax
or ebx, edx
not ebx
add ebx, edx
sub ebx, edi
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
mov edx, eax
xor edx, 0x67
and eax, 0x67
lea eax, [edx + eax*2]
inc al
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x435af0
mov eax, dword [esp + 8]
mov edx, dword [0x449a0c]
test edx, edx
je case.default.0x435b94
xor edi, edi
mov ebx, dword [0x449a10]
nop
cmp dword [ebx + edi*8], 0x3bebd150
je 0x435b60
inc edi
cmp edx, edi
jne 0x435b50
jmp case.default.0x435b94
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je case.default.0x435b94
lea eax, [esp + 0x24]
push 0x2f
push 0x400
push esi
push eax
push ecx
push 5
push dword [0x449a14]
push edx
call fcn.0043a960
add esp, 0x20
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x4471d4]
push esi
call fcn.00438ea0
add esp, 4
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0x3c3d3e3f
mov dword [esp + 0xc], 0
mov word [esp + 0x10], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x435c1c
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + 0xa8]
and esi, edx
mov edi, 0x1904aa57
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp], edi
mov ecx, dword [esp]
mov edx, ecx
xor edx, 0x67
and ecx, 0x67
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x435bd0
mov ecx, dword [0x449a0c]
test ecx, ecx
je 0x435d29
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x435d0f
inc esi
cmp ecx, esi
jne 0x435c40
jmp 0x435d29
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x18], 0
cmp ecx, dword [esi]
setb al
xor ebx, ebx
mov dword [esp + 0x1c], esi
jmp dword [eax*4 + 0x4471dc]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 8]
call fcn.00439340
inc ebx
xor eax, eax
cmp ebx, dword [esi]
setb al
jmp dword [eax*4 + 0x4471dc]
mov eax, dword [esi + ebx*4 + 4]
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
lea edi, [esp + 8]
mov ecx, edi
push 0
push eax
call fcn.004391e0
xor eax, eax
mov ecx, dword [ebp + 0xc]
neg ecx
mov esi, dword [ebp + 0x10]
sbb eax, esi
setl al
movzx eax, al
shl eax, 0x14
or eax, 1
mov ecx, edi
push eax
call fcn.00439200
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4471e4]
lea ecx, [esp + 8]
push esi
push dword [ebp + 0xc]
push 0
call fcn.00439420
test eax, eax
setns al
mov dword [esp + 0x18], eax
jmp case.0x435b94.4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x435d29
push eax
push 1
push dword [0x449a14]
push ecx
call fcn.0043a960
add esp, 0x10
mov ecx, dword [case.0x435b94.9]
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x440]
mov ax, word [eax + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x2a4], ecx
mov eax, dword [esp + 0x2a8]
mov ecx, dword [esp + 0x2a4]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x214], 0
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x214]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xc]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [esp + 0x254], ecx
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x254]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov esi, dword [esp + 0xc]
mov dword [esp + 0x364], 0
mov eax, dword [esp + 0x368]
mov ecx, dword [esp + 0x364]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x138]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + eax*4]
jmp eax
add al, 0xf9
test al, 0x5f
add eax, 0xf707ea30
cli
idiv edx
ja 0x43682c
push 0x69
imul ebx, dword [eax], 0xffffff8b
test byte [esp + eax*4], ah
add byte [eax], al
add byte [ebx + 0x88248c], cl
add byte [eax], al
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
movzx eax, di
mov dword [esp + 0x334], 1
mov ecx, dword [esp + 0x338]
mov edx, dword [esp + 0x334]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x10]
mov word [eax], 0x5c
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x31c]
mov ecx, dword [esp + 0x320]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x35c]
mov ecx, dword [esp + 0x360]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x21c], ecx
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
add eax, 2
mov dword [esp], eax
mov dword [esp + 4], 0x4416ec
call fcn.00437780
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x23c], ecx
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0x23c]
mov eax, dword [eax + ecx*4]
jmp eax
dec ecx
shr byte [ebx - 0x34d33076], 0x6b
jnp 0x436995
mov edi, 0x24848b30
mov word [eax], es
xor byte [ebx + 0x8c2484], cl
add byte [eax], al
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x41c], ecx
mov eax, dword [esp + 0x420]
mov ecx, dword [esp + 0x41c]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esp + 0x3ac]
mov edx, dword [esp + 0x3b0]
mov ecx, dword [edx + ecx*4]
jmp ecx
push 0xe3c3bc59
mov dh, 0x1e
lahf
invalid
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x188]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x114], 1
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov eax, dword [eax + ecx*4]
jmp eax
mov byte [esp + 0x15], 0
mov eax, dword [esp + 0x414]
mov ecx, dword [esp + 0x418]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, eax
sar ecx, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
sub eax, 1
sete cl
mov dword [esp + 0x374], ecx
mov eax, dword [esp + 0x378]
mov ecx, dword [esp + 0x374]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x36c], 0
mov eax, dword [esp + 0x370]
mov ecx, dword [esp + 0x36c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x13c], 1
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax + 4]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x264], 1
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x264]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov di, word [esi]
mov dword [esp + 0x34c], 0
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x34c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax + 2]
xor ecx, ecx
sub ax, 0x3a
sete cl
mov dword [esp + 0xec], ecx
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x348]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28c]
mov ecx, dword [esp + 0x290]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x244], ecx
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x244]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x3cc], 0
mov eax, dword [esp + 0x3d0]
mov ecx, dword [esp + 0x3cc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov eax, esi
add eax, 4
mov dword [esp + 0x174], 1
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x174]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.00409640
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b4], 1
mov ecx, dword [esp + 0x3b8]
mov edx, dword [esp + 0x3b4]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x18]
add eax, 0xfffffffe
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffffe
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x2a0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ecx, dword [esp + 0x40c]
mov edx, dword [esp + 0x410]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esp + 0x440]
mov word [eax + 4], 0x5c
mov eax, dword [esp + 0x440]
mov word [eax + 6], 0
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffffe
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov ecx, dword [esp + 0x1c]
xor eax, eax
sub ecx, 2
sete cl
mov dword [esp + 0x30c], 1
mov edx, dword [esp + 0x310]
mov esi, dword [esp + 0x30c]
mov edx, dword [edx + esi*4]
jmp edx
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x150]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x298]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x234], 1
mov eax, dword [esp + 0x238]
mov ecx, dword [esp + 0x234]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov eax, dword [esp + 0x440]
mov cx, word [eax]
xor eax, eax
sub cx, 0x5c
sete cl
mov dword [esp + 0x22c], 1
mov edx, dword [esp + 0x230]
mov esi, dword [esp + 0x22c]
mov edx, dword [edx + esi*4]
jmp edx
call fcn.00409640
mov dword [esp + 0x2cc], 0
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x2cc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x2bc], ecx
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
mov eax, dword [eax + ecx*4]
jmp eax
mov edx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1d8]
mov edx, dword [esi + edx*4]
jmp edx
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1a8]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esp + 0x32c]
mov edx, dword [esp + 0x330]
mov ecx, dword [edx + ecx*4]
jmp ecx
aam 0
clc
scasb al, byte es:[edi]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0xfc], ecx
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
mov eax, dword [eax + ecx*4]
jmp eax
mov byte [esp + 0x15], 1
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0xc]
mov ax, word [eax + 2]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [esp + 0x24c], ecx
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x24c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f0]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x304]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
mov eax, dword [ecx + eax*4]
jmp eax
in eax, dx
inc ecx
mov edi, 0x86669534
mov ch, byte [ecx + 0x20]
adc eax, dword [edx - 0x75]
inc esp
and al, 0x5c
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x1ac], 1
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1ac]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c8]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x208]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x224]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0041d9d0
mov eax, dword [esp + 0x1c]
mov ecx, eax
xor ecx, 0x7fffffff
mov edx, eax
or edx, 1
add ecx, edx
mov edx, eax
xor edx, 1
and edx, eax
sub edx, ecx
mov eax, dword [esp + 0x10]
lea eax, [eax + edx*2 - 2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0x7ffffffe
or eax, 0x7ffffffe
add ecx, eax
mov eax, dword [esp + 0xc]
lea eax, [eax + ecx*2 + 2]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x16]
mov bl, al
and ebx, 1
mov dword [esp + 0x25c], ebx
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x25c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
mov word [eax], 0x5c
mov eax, dword [esp + 0x440]
mov word [eax + 2], 0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x440]
add eax, 2
mov dword [esp], eax
mov dword [esp + 4], 0x4416ec
call fcn.00437780
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x2b4], ecx
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2b4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x3c4]
mov ecx, dword [esp + 0x3c8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x18]
mov ax, word [eax]
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f8]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x27c]
mov edx, dword [esp + 0x280]
mov ecx, dword [edx + ecx*4]
jmp ecx
call fcn.00409640
xor eax, eax
mov ecx, esi
sub ecx, 0x5c
sete cl
mov dword [esp + 0x1dc], 0
mov edx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x1dc]
mov edx, dword [edx + edi*4]
jmp edx
sub cl, 0xd2
cmp al, 0xd3
pushal
fnstenv [eax + 0x41]
inc ebx
push esi
mov word [ebx - 0x74dbdbbc], cs
dec esp
and al, 0x28
mov eax, dword [ecx + eax*4]
jmp eax
and ch, byte [edi]
add byte [esi], 0xbf
fidivr word [esi + 0xa]
pop esp
inc ecx
sub dh, ch
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov dword [esp + 0x314], 0
mov eax, dword [esp + 0x318]
mov ecx, dword [esp + 0x314]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], 0x5c
call fcn.00437740
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x384], ecx
mov eax, dword [esp + 0x388]
mov ecx, dword [esp + 0x384]
mov eax, dword [eax + ecx*4]
jmp eax
add al, 0x3e
sti
and ch, dl
or byte [ebx + 0x46588782], bl
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x17]
mov bl, al
and ebx, 1
mov dword [esp + 0x2c4], ebx
mov eax, dword [esp + 0x2c8]
mov ecx, dword [esp + 0x2c4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xc]
mov ax, word [eax + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x2f4], ecx
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2f4]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov esi, dword [esp + 0xc]
mov dword [esp], esi
call fcn.00419030
lea eax, [esi + eax*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x37c]
mov ecx, dword [esp + 0x380]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0xc]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [esp + 0x2fc], ecx
mov eax, dword [esp + 0x300]
mov ecx, dword [esp + 0x2fc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x440]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [esp + 0x2ac], ecx
mov eax, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x2ac]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + eax*4]
jmp eax
sbb al, 0x4f
push eax
lodsb al, byte [esi]
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.00409640
mov eax, dword [esp + 0x10]
add eax, 0xfffffffe
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20c], 0
mov eax, dword [esp + 0x210]
mov ecx, dword [esp + 0x20c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.00409640
mov dword [esp + 0xb4], 1
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
mov eax, dword [eax + ecx*4]
jmp eax