Function at 0x420112
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x60], 0x7b8c7993
mov dword [esp + 0x64], 0x7f9f7d9d
mov dword [esp + 0x68], 0x734e7181
mov dword [esp + 0x6c], 0x77fc7595
mov dword [esp + 0x70], 0xb080991
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov byte [esp + 0x7c], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x1c
ja 0x41f50e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x60]
mov edx, 0x50
sub edx, eax
add eax, 0x67e345af
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x37
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x1d
jb 0x41f4d0
lea edi, [esp + 0x60]
lea ecx, [esp + 0x4c]
push edi
call fcn.00432620
shr eax, 0x1f
jmp dword [eax*4 + 0x43dbe0]
lea ecx, [esp + 0x4c]
push 0x410
call fcn.00432870
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x43dbf8]
mov dword [esp + 0x60], 0x6a037865
mov dword [esp + 0x64], 0x706a0d60
mov dword [esp + 0x68], 0x6c656301
mov dword [esp + 0x6c], 0x177e6605
mov dword [esp + 0x70], 0x601b1206
mov dword [esp + 0x74], 0x7f1c161d
mov dword [esp + 0x78], 0x72791e7a
mov dword [esp + 0x7c], 0x761f7413
mov dword [esp + 0x80], 0x66707672
mov dword [esp + 0x84], 0xe635571
mov dword [esp + 0x88], 0xab5a6161
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x37
ja 0x41f61e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x60]
mov edx, 0xdf
sub edx, eax
add eax, 0xc1891d20
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x20
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x38
jb 0x41f5e0
lea eax, [esp + 0x14]
lea ecx, [esp + 0x4c]
push 0
push 0x2b
push edi
push eax
call fcn.00432df0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
xor eax, eax
cmp ebx, esi
sete al
mov dword [esp + 0x20], esi
jmp dword [eax*4 + 0x43dc00]
mov eax, esi
sub eax, ebx
sar eax, 2
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.00409090
add esp, 4
mov dword [esp + 0x44], 0
xor ecx, ecx
cmp ebx, esi
setne cl
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
jmp dword [ecx*4 + 0x43dc18]
xor ebx, ebx
jmp dword [0x43dbf0]
mov dword [esp + 8], edx
add ebx, 4
xor eax, eax
mov esi, dword [esp + 0x20]
cmp ebx, esi
setne al
jmp dword [eax*4 + 0x43dc18]
mov esi, dword [ebx]
jmp dword [0x43dc2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x400
push 0
push edi
call fcn.00409120
add esp, 0xc
jmp dword [0x43dc34]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x4c]
push eax
push 0x400
push edi
push esi
call fcn.00432c90
mov ecx, dword [case.0x41f644.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
cmp eax, 0xc0000000
setae al
cmp dword [esp + 0x30], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43dc48]
mov eax, 1
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x43dc50]
xor eax, eax
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x43dc50]
mov byte [esp + 0x45f], 0
movzx eax, byte [esp + 0x60]
xor esi, esi
test al, al
je 0x41f791
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x41f78f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x41f780
jmp 0x41f791
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43dc58]
mov ecx, esi
movzx eax, byte [esi + 1]
inc ecx
xor esi, esi
test al, al
mov dword [esp + 0xc], ecx
je 0x41f7c1
cmp al, 0x2e
je 0x41f7bf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x41f7b0
jmp 0x41f7c1
mov esi, ecx
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0xc]
jmp dword [eax*4 + 0x43dc60]
mov edx, esi
sub edx, ecx
lea ecx, [edx + edx*2]
shr ecx, 2
movzx eax, byte [esi - 1]
cmp eax, 0x3d
je 0x41f7eb
cmp eax, 0x2e
jne 0x41f7ec
dec ecx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x28], edx
je 0x41f803
cmp eax, 0x2e
jne 0x41f804
dec ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409090
add esp, 4
mov dword [esp + 0x24], eax
cmp esi, dword [esp + 0xc]
je 0x41f91a
xor edx, edx
mov edi, 2
jmp 0x41f850
mov edx, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x41f91a
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0xc]
movzx eax, byte [esi + edi - 2]
push eax
call fcn.00416c40
add esp, 4
mov ebx, eax
movzx eax, byte [esi + edi - 1]
push eax
call fcn.00416c40
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0x28]
cmp edi, ecx
jae 0x41f840
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.00416c40
mov edx, esi
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
je 0x41f840
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x2c]
lea edx, [esi + 2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x24]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x41f82f
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00416c40
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x48]
je 0x41f840
shl bl, 6
add al, bl
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x41f840
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov byte [esi + eax], 0
push esi
call fcn.00401e60
add esp, 4
mov ebx, eax
jmp dword [0x43dc68]
push esi
call fcn.004090a0
add esp, 4
push ebx
call fcn.00402900
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x60]
jmp dword [ecx*4 + 0x43dc70]
mov esi, dword [esp + 0x20]
jmp 0x41fa59
mov dword [esp + 0x30], 0x4b243033
lea ecx, [esp + 0x34]
mov byte [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 8
ja 0x41f9d0
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xb5
sub esi, ecx
add ecx, 0x56565e4a
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0xfa
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 9
jb 0x41f990
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.004026c0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43dc78]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 8]
jmp 0x41fa27
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 8]
je 0x41fa1b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41fa10
mov word [edx], 0x203a
add edx, 2
mov esi, dword [esp + 0x20]
movzx eax, byte [esp + 0x60]
test al, al
je 0x41fa4b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fa40
mov byte [edx], 0xa
inc edx
mov dword [esp + 8], edx
mov al, 1
mov dword [esp + 0x44], eax
push ebx
call fcn.00402ea0
add esp, 4
mov ebx, dword [esp + 0x5c]
add ebx, 4
xor eax, eax
cmp ebx, esi
setne al
jmp dword [eax*4 + 0x43dc18]
mov ebx, dword [esp + 0x44]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43dc20]
mov edi, dword [esp + 0x40]
jmp dword [0x43dc80]
mov eax, dword [case.0x41f644.5]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor edi, edi
test ebx, ebx
jne 0x41fb8c
jmp 0x41fb99
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 8]
mov byte [ebx], 0
mov dword [esp + 0x60], 0x97a8a975
mov dword [esp + 0x64], 0xab9f9891
mov dword [esp + 0x68], 0xb68eb095
mov dword [esp + 0x6c], 0x80b09073
mov dword [esp + 0x70], 0x9f798685
mov dword [esp + 0x74], 0x818b80bb
mov dword [esp + 0x78], 0x8b847fbb
mov word [esp + 0x7c], 0x1586
mov dword [esp + 0x7e], 0
mov edi, dword [esp + 0x40]
sub ebx, edi
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x41fb5e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x60]
mov esi, pe_nt_image_headers32
sub esi, eax
add eax, 0x1813f687
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
add al, 0x4f
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x41fb20
lea eax, [esp + 0x60]
push ebx
push edi
push eax
call fcn.00409bd0
mov ebx, eax
jmp dword [0x43dc80]
push edi
call fcn.004090a0
add esp, 4
and bl, 1
mov edi, ebx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
test ebx, ebx
je 0x41fb99
cmp ebx, esi
je 0x41fb99
push ebx
call fcn.004090a0
add esp, 4
mov ebx, edi
lea ecx, [esp + 0x4c]
call fcn.004329a0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
test edx, edx
sete al
mov dword [esi + 0xc], 0x20119
xor edx, edx
mov ecx, dword [esi + 8]
jmp dword [eax*4 + 0x43dd40]
jmp dword [edx*4 + 0x43dca8]
lea eax, [ebx + 0x18]
mov dword [esi + 0x14], eax
lea eax, [edi + 0x4e]
jmp dword [0x43dcb4]
jmp dword [0x43dcbc]
jmp dword [0x43dcbc]
mov dword [esi + 8], ecx
mov dword [edi], 0xf304cd30
mov dword [edi + 4], 0xf73df135
mov dword [edi + 8], 0xfb0df53d
mov dword [edi + 0xc], 0xff08f90c
mov dword [edi + 0x10], 0xe31efd05
mov dword [edi + 0x14], 0xe727e12d
mov dword [edi + 0x18], 0xeb22e523
mov dword [edi + 0x1c], 0xef1ce921
mov dword [edi + 0x20], 0x936eed29
mov dword [edi + 0x24], 0x97659167
mov dword [edi + 0x28], 0x9b6e955e
mov dword [edi + 0x2c], 0x9f5f9963
mov dword [edi + 0x30], 0x83479d6a
mov dword [edi + 0x34], 0x877c817c
mov dword [edi + 0x38], 0x8b668565
mov dword [edi + 0x3c], 0x8f6b8912
mov dword [edi + 0x40], 0xb3458d70
mov dword [edi + 0x44], 0xb753b124
mov dword [edi + 0x48], 0xbb57b555
mov word [edi + 0x4c], 0xb9b8
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x50
ja 0x41fda5
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov edx, dword [esi + 4]
movzx ecx, byte [edi + edx]
mov edx, 0x61
sub edx, eax
add eax, 0x6d25559e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0xae
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x51
jb 0x41fd70
push 0
push 0
push dword [esi + 0xc]
push dword [esi + 0x18]
push edi
call fcn.00436ab0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43dcc0]
mov dword [esi + 0xc], ebx
push dword [esi + 0x20]
push dword [esi + 0x1c]
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [esi + 0x18]
push dword [eax]
call fcn.00436f30
add esp, 0x24
not eax
shr eax, 0x1f
mov ebx, dword [esi + 8]
jmp dword [eax*4 + 0x43dcc8]
mov dword [esi + 0x4c], edi
mov edi, dword [esi + 0x20]
jmp dword [0x43dcd4]
mov ecx, dword [edi]
lea eax, [ecx*2 + 2]
inc ecx
jns 0x41fe10
mov eax, 0xffffffff
push eax
call fcn.00409090
add esp, 4
mov dword [esi + 8], eax
mov ebx, dword [esi + 0xc]
mov dword [ebx], 0x3900df5
mov dword [ebx + 4], 0x7920197
mov dword [ebx + 8], 0x3ba605e5
mov dword [ebx + 0xc], 0x3fce39a4
mov dword [ebx + 0x10], 0x33a63ddd
mov dword [ebx + 0x14], 0x373631a8
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1d
ja 0x41fea6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx eax, byte [ebx + edx]
mov edx, 0x29
sub edx, ecx
add ecx, 0x903180d6
xor edx, ecx
and edx, eax
xor edx, ecx
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0x26
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1e
jb 0x41fe70
mov edi, dword [esi + 0x20]
push edi
push dword [esi + 8]
push 0
push ebx
mov eax, dword [esi + 0x18]
push dword [eax]
call fcn.004375e0
add esp, 0x14
jmp case.0x41fdbb.5
mov edi, dword [esi + 0x20]
push edi
mov eax, ebx
mov ebx, dword [esi + 8]
push ebx
push 0
push eax
mov eax, dword [esi + 0x18]
push dword [eax]
call fcn.004375e0
add esp, 0x14
jmp dword [0x43dcd8]
mov eax, dword [edi]
mov ecx, eax
inc ecx
jns 0x41fef0
mov eax, 0xffffffff
jmp 0x41fef7
lea eax, [eax*2 + 2]
mov ebx, dword [esi + 0xc]
push eax
call fcn.00409090
add esp, 4
mov dword [esi + 8], eax
mov dword [ebx], 0x3900df5
mov dword [ebx + 4], 0x7920197
mov dword [ebx + 8], 0x3ba605e5
mov dword [ebx + 0xc], 0x3fce39a4
mov dword [ebx + 0x10], 0x33a63ddd
mov dword [ebx + 0x14], 0x373631a8
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1d
ja 0x41fec0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
mov ecx, 0x29
sub ecx, eax
add eax, 0x903180d6
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x30], ecx
mov eax, dword [esi + 0x30]
add al, 0x26
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1e
jb 0x41ff60
jmp 0x41fec0
mov edx, 4
jmp 0x420105
shr eax, 0x1f
mov edi, dword [esi + 0x4c]
jmp dword [eax*4 + 0x43dce0]
jmp dword [0x43dcf8]
push ebx
call fcn.004090a0
add esp, 4
mov eax, dword [case.0x41fdbb.2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp eax
mov dword [esi + 8], ebx
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov dword [esi + 0x30], 0x9c9d9e9f
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xb
ja 0x420057
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x30]
mov ecx, 0xc3
sub ecx, eax
add eax, 0x2dbd7a3c
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x5c
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x30], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xc
jb 0x420020
mov ecx, dword [0x441028]
test ecx, ecx
mov ebx, dword [esi + 0xc]
je 0x4200a0
mov eax, dword [esi + 0x30]
mov dword [esi + 0x4c], eax
xor eax, eax
mov edx, dword [0x44102c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + eax*8], 0xa3c1f363
je 0x420090
inc eax
cmp ecx, eax
jne 0x420080
jmp 0x4200a0
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [esi + 0x4c]
jne case.default.0x4200a9
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esi + 8], 0
setne al
jmp dword [eax*4 + 0x43dd10]
push dword [esi + 0x2c]
call fcn.00436030
add esp, 4
mov ecx, dword [esi + 0x2c]
cmp dword [ecx], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43dd18]
xor edx, edx
jmp 0x420105
jmp case.0x4200f3.1
push dword [esi + 0x14]
push 1
push dword [0x441030]
push eax
call fcn.00433e50
add esp, 0x10
xor eax, eax
cmp dword [esi + 8], 0
setne al
jmp dword [eax*4 + 0x43dd10]
mov edx, 2
mov ecx, dword [case.0x41fdbb.26]
nop
nop
nop
nop
nop
jmp ecx
xor eax, eax
cmp edx, 4
setl al
jmp dword [eax*4 + 0x43dd30]
sete al
movzx eax, al
mov dword [esi + 0xc], 0x20119
xor edx, edx
mov ecx, dword [esi + 8]
jmp dword [eax*4 + 0x43dd38]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43dd58]
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x24]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov ebx, dword [esi + 0x60]
mov dword [ebx], 0xfb5df9aa
mov dword [ebx + 4], 0xff62fd6b
mov dword [ebx + 8], 0xf36bf158
mov dword [ebx + 0xc], 0xf758f56b
mov dword [ebx + 0x10], 0xeb79e953
mov dword [ebx + 0x14], 0xef4aed74
mov dword [ebx + 0x18], 0xe379e175
mov dword [ebx + 0x1c], 0xe772e53c
mov dword [ebx + 0x20], 0xdb7ed942
lea eax, [ebx + 0x24]
mov word [ebx + 0x24], 0xddda
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x26], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x2d
ja 0x420202
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx - 0x17519c01]
neg ecx
xor ecx, edi
and ecx, edx
xor ecx, edi
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x30]
add cl, 7
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x2e
jb 0x4201d0
mov edx, dword [esi + 0x40]
mov edi, edx
mov ecx, 9
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [edx + 0x24]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x420230
cmp eax, 0xffffffd9
mov edi, dword [esi + 0x28]
jge 0x420251
mov eax, 0xffffffff
jmp 0x420254
xor ebx, ebx
jmp 0x420cfd
add eax, 0x26
push eax
call fcn.00409090
add esp, 4
mov ecx, dword [esi + 8]
movzx ecx, word [ecx]
mov dword [esi + 0x1c], eax
test cx, cx
je 0x420291
mov eax, dword [esi + 8]
lea edx, [eax + 2]
mov eax, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420280
mov word [eax], 0
mov edx, dword [esi + 0x40]
movzx ecx, word [edx]
test cx, cx
je 0x4202c1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4202b0
mov word [eax], 0
jmp dword [0x43dd60]
push dword [esi + 8]
call fcn.004090a0
add esp, 4
push 0x60
push 3
push 0x120089
push dword [esi + 0x44]
push dword [esi + 0x1c]
call fcn.00436250
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43dd68]
push 0
push edi
mov eax, dword [esi + 0x44]
push dword [eax]
call fcn.004365f0
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43dd70]
mov edi, dword [edi]
lea eax, [edi + 1]
push eax
call fcn.00409090
add esp, 4
push 0
push edi
mov dword [esi + 0x4c], eax
push eax
mov eax, dword [esi + 0x44]
push dword [eax]
call fcn.004366f0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43dd78]
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov ebx, dword [esi + 0x4c]
mov byte [ebx + edi], 0
push 0x20
call fcn.00409090
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esi + 0x64], eax
mov ecx, eax
push edi
push ebx
call fcn.00422480
movzx eax, al
jmp dword [eax*4 + 0x43dd80]
mov edi, dword [esi + 0x78]
mov dword [edi], 0x2f1e2803
mov dword [edi + 4], 0x182e1e23
mov dword [edi + 8], 0xf03176f
mov dword [edi + 0xc], 0x12750234
mov dword [edi + 0x10], 0x40b0e32
mov dword [edi + 0x14], 0xa096e7b
mov dword [edi + 0x18], 0x73e063f
mov dword [edi + 0x1c], 0x9507
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1f
ja 0x420425
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x38
sub edx, eax
add eax, 0xb2f01c7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0x8f
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x20
jb 0x4203f0
mov ecx, dword [esi + 0x64]
push edi
call fcn.00422670
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x24]
jmp dword [ecx*4 + 0x43dd88]
jmp dword [0x43dd98]
mov edi, dword [esi + 0x64]
mov ecx, edi
call fcn.004227d0
push edi
call fcn.004090a0
add esp, 4
jmp dword [0x43dda0]
jmp dword [0x43dda0]
push dword [esi + 0x4c]
call fcn.004090a0
add esp, 4
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esi + 0x30], 0x9c9d9e9f
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 0xb
ja 0x4204d9
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x30]
mov edi, 0xc3
sub edi, ecx
add ecx, 0x2dbd7a3c
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x5c
mov edx, dword [esi + 0x10]
mov byte [esi + edx + 0x30], cl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0xc
jb 0x4204a0
mov ecx, dword [0x441028]
test ecx, ecx
je case.0x41fdbb.42
mov edx, dword [esi + 0x30]
xor edi, edi
mov ebx, dword [0x44102c]
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x420500
inc edi
cmp ecx, edi
jne 0x4204f0
jmp case.0x41fdbb.42
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x420517
mov edi, dword [esi + 0x1c]
jmp dword [0x43dda8]
jmp dword [0x43ddb4]
push eax
push 1
push dword [0x441030]
push ecx
call fcn.00433e50
add esp, 0x10
mov edi, dword [esi + 0x1c]
jmp dword [0x43dda8]
add eax, 8
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43dd90]
mov ecx, eax
shr ecx, 8
mov ebx, dword [esi + 0xc]
xor al, byte [ebx]
movzx eax, al
xor ecx, dword [eax*4 + 0x4397c8]
mov eax, ecx
not eax
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 8]
mov dword [ebx + ecx + 4], eax
mov eax, dword [esi + 0x18]
add eax, 8
mov dword [edx + 4], eax
add edi, 4
mov edi, dword [edi]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43dd90]
mov eax, dword [edi]
mov dword [esi + 0xc], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov ebx, eax
sub ebx, ecx
mov dword [esi + 0x18], eax
cmp eax, dword [edx + 8]
mov dword [esi + 0x40], edi
mov dword [esi + 0x2c], ebx
je 0x4205a6
mov eax, ecx
jmp 0x420656
mov dword [esi + 0x20], ecx
mov ecx, ebx
sar ecx, 3
lea edx, [ecx + 1]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, edx
ja 0x4205bd
mov eax, edx
mov edx, eax
and edx, 8
mov ecx, eax
or ecx, 8
imul ecx, edx
xor edx, 8
mov dword [esi + 8], edx
mov dword [esi + 0x28], eax
and eax, 0xfffffff7
imul eax, dword [esi + 8]
add ecx, eax
push ecx
call fcn.00409090
add esp, 4
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x42063f
cmp ecx, dword [esi + 0x18]
mov dword [esi + 8], eax
je 0x420630
mov eax, ecx
not eax
mov dword [esi + 0x14], eax
mov ebx, ecx
mov edx, ecx
nop
mov edi, ebx
xor edi, ecx
mov ecx, ebx
and ecx, dword [esi + 0x14]
add ecx, ecx
sub ecx, edi
mov edi, dword [edx]
mov eax, dword [esi + 8]
mov dword [eax + ecx], edi
mov edi, dword [edx + 4]
mov dword [eax + ecx + 4], edi
mov ecx, dword [esi + 0x20]
mov dword [edx], 0
add ebx, 8
add edx, 8
cmp edx, dword [esi + 0x18]
jne 0x420600
push ecx
call fcn.004090a0
add esp, 4
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
lea edx, [eax + ebx]
mov dword [esi + 0x18], edx
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x28]
lea edx, [eax + edx*8]
mov dword [ecx + 8], edx
mov dword [eax + ebx], 0
mov dword [esi + 8], eax
mov dword [eax + ebx + 4], 0
mov ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
cmp byte [edx + ecx + 1], 0
lea ecx, [ecx + 1]
lea eax, [eax + 1]
jne 0x420680
lea edi, [ecx + 1]
push edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x20], ecx
call fcn.00409090
add esp, 4
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 8]
mov dword [edx + ecx], eax
mov ecx, edi
shr ecx, 2
mov edx, dword [esi + 0xc]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 0x14]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, dword [esi + 0xc]
shr ecx, 1
and ecx, 1
mov dword [esi + 0x28], edx
mov dword [esi + 0x60], eax
mov edi, eax
mov eax, dword [esi + 0x28]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0x20]
test cl, 1
jne 0x4206fb
mov edi, dword [esi + 0x14]
and edi, 2
movzx ecx, byte [edx + edi]
mov eax, dword [esi + 0x60]
mov byte [eax + edi], cl
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x420772
cmp ecx, 1
mov edi, dword [esi + 0x40]
jne 0x420719
mov eax, 0xffffffff
mov edx, dword [esi + 0x24]
test cl, 1
je 0x42055b
jmp 0x420545
and ebx, 0xfffffffe
mov eax, 0xffffffff
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
shr ecx, 8
xor al, byte [edx]
movzx eax, al
xor ecx, dword [eax*4 + 0x4397c8]
mov eax, ecx
shr eax, 8
xor cl, byte [edx + 1]
add edx, 2
movzx ecx, cl
xor eax, dword [ecx*4 + 0x4397c8]
add ebx, 0xfffffffe
jne 0x420730
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
test cl, 1
je 0x42055b
jmp 0x420545
xor eax, eax
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x40]
jmp 0x42055d
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
xor edx, edx
cmp ecx, eax
sete dl
xor ebx, ebx
mov edi, dword [esi + 0x48]
jmp dword [edx*4 + 0x43ddc0]
sub eax, ecx
sar eax, 3
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.00409090
add esp, 4
mov dword [esi + 0x14], eax
mov dword [edi], 0x63ae6145
mov dword [edi + 4], 0x6785658b
mov dword [edi + 8], 0x6b866989
mov dword [edi + 0xc], 0x6ffe6dad
mov dword [edi + 0x10], 0x13d61180
mov dword [edi + 0x14], 0x178215f5
mov dword [edi + 0x18], 0x1b3f19f9
mov dword [edi + 0x1c], 0x1fed1de0
mov dword [edi + 0x20], 0x3e70194
mov dword [edi + 0x24], 0x7eb05e5
mov dword [edi + 0x28], 0xbe609f4
mov dword [edi + 0x2c], 0xfed0de3
mov dword [edi + 0x30], 0x33de31d1
mov dword [edi + 0x34], 0x37a0351a
mov dword [edi + 0x38], 0x3bdc39dc
lea eax, [edi + 0x3c]
mov word [edi + 0x3c], 0x3d3c
mov word [edi + 0x42], 0
mov dword [edi + 0x3e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x43
ja 0x42089a
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
mov edi, 0x4f
sub edi, ecx
add ecx, 0x461b8bb0
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x30], edi
mov edi, dword [esi + 0x48]
mov ecx, dword [esi + 0x30]
add cl, 0x30
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x44
jb 0x420860
mov edx, dword [esi + 0x50]
mov ebx, edi
mov edi, edx
mov ecx, 0xf
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x3c
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x70]
push edi
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x441024]
mov edi, dword [edi]
test edi, edi
jns 0x4208db
mov eax, 0xffffffff
jmp 0x4208de
lea eax, [edi + edi]
push eax
call fcn.00409090
add esp, 4
mov ebx, eax
push dword [esi + 0x70]
push edi
push eax
push 0x1e
push dword [esi + 0x50]
push 0
call dword [0x441024]
push 0x60
push 3
push 0x120089
mov edi, dword [esi + 0x5c]
push edi
mov dword [esi + 0x2c], ebx
push ebx
call fcn.00436250
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43ddc8]
xor ebx, ebx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x58]
jmp dword [0x43de70]
push dword [esi + 0x2c]
call fcn.004090a0
add esp, 4
mov ecx, ebx
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43de78]
mov ebx, dword [esi + 0x1c]
mov byte [ebx], 0
mov dword [edi], 0xcfc2c1f1
mov dword [edi + 4], 0xc3d7d6cd
mov dword [edi + 8], 0x38343631
mov dword [edi + 0xc], 0x2a3a1ef3
mov dword [edi + 0x10], 0x17fd3c21
mov dword [edi + 0x14], 0x39233e3b
mov dword [edi + 0x18], 0x532ee72b
mov word [edi + 0x1c], 0xdd28
mov dword [edi + 0x1e], 0
mov dword [edi + 0x21], 0
sub ebx, dword [esi + 0x14]
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x24
ja 0x4209e5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x87
sub edx, eax
add eax, 0xee4d2078
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0xb8
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x25
jb 0x4209b0
mov ecx, dword [ebp + 8]
push ebx
push dword [esi + 0x14]
push edi
call fcn.00409bd0
mov ebx, eax
jmp dword [0x43de80]
mov eax, dword [case.0x420438.21]
nop
jmp eax
push 0
mov ebx, dword [esi + 0x7c]
push ebx
push dword [edi]
call fcn.004365f0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ecx
jmp dword [eax*4 + 0x43dde0]
mov edi, dword [ebx]
lea eax, [edi + 1]
push eax
call fcn.00409090
add esp, 4
push 0
push edi
mov edi, dword [esi + 0x5c]
mov dword [esi + 0x28], eax
push eax
push dword [edi]
call fcn.004366f0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ecx
jmp dword [eax*4 + 0x43dde8]
mov edi, dword [ebx]
mov ebx, dword [esi + 0x28]
mov byte [ebx + edi], 0
push 0x20
call fcn.00409090
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esi + 0x50], eax
mov ecx, eax
push edi
push ebx
call fcn.00422480
movzx eax, al
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ecx
jmp dword [eax*4 + 0x43ddf0]
mov edi, dword [esi + 0x74]
mov dword [edi], 0x2f3e300b
mov dword [edi + 4], 0xe3e2b
mov dword [edi + 8], 0xf3b37cf
mov dword [edi + 0xc], 0x3ac50a14
mov dword [edi + 0x10], 0x4330e1a
mov dword [edi + 0x14], 0x191d30c3
mov dword [edi + 0x18], 0x7151618
mov dword [edi + 0x1c], 0x1f192637
mov word [edi + 0x20], 0x8119
mov dword [edi + 0x22], 0
mov dword [edi + 0x26], 0
mov byte [edi + 0x2a], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x2a
ja 0x420b65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x64
sub edx, eax
add eax, 0x7a6d99b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0xc3
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x2b
jb 0x420b30
mov ecx, dword [esi + 0x50]
push edi
call fcn.00422670
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0xc], 0
mov edx, dword [esi + 0x14]
mov dword [esi + 0x1c], edx
jmp dword [ecx*4 + 0x43ddf8]
mov edi, dword [esi + 0x5c]
jmp dword [0x43de60]
mov ebx, dword [esi + 0x50]
mov ecx, ebx
call fcn.004227d0
push ebx
call fcn.004090a0
add esp, 4
jmp dword [0x43de68]
jmp dword [0x43de68]
push dword [esi + 0x28]
call fcn.004090a0
add esp, 4
mov eax, dword [edi]
mov dword [esi + 0x30], 0x9c9d9e9f
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 0xb
ja 0x420c29
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x30]
mov edi, 0xc3
sub edi, ecx
add ecx, 0x2dbd7a3c
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x5c
mov edx, dword [esi + 0x10]
mov byte [esi + edx + 0x30], cl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0xc
jb 0x420bf0
mov ecx, dword [0x441028]
test ecx, ecx
je 0x420c5c
mov edx, dword [esi + 0x30]
xor edi, edi
mov ebx, dword [0x44102c]
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x420c50
inc edi
cmp ecx, edi
jne 0x420c40
jmp 0x420c5c
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x420d07
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0xc]
jmp dword [0x43de70]
mov ecx, ebx
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43de78]
mov ebx, ecx
jmp dword [0x43de80]
push dword [esi + 0x14]
call fcn.004090a0
add esp, 4
and bl, 1
mov eax, dword [case.0x420438.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
test edi, edi
je 0x420cfd
mov dword [esi + 0xc], ebx
mov ebx, dword [eax + 4]
cmp edi, ebx
je 0x420cfa
mov dword [esi + 8], edi
jmp 0x420cc7
add edi, 8
cmp edi, ebx
je 0x420cd8
mov eax, dword [edi]
test eax, eax
je 0x420cc0
push eax
call fcn.004090a0
add esp, 4
jmp 0x420cc0
push dword [esi + 8]
call fcn.004090a0
add esp, 4
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ebx, dword [esi + 0xc]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x441030]
push ecx
call fcn.00433e50
add esp, 0x10
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0xc]
jmp dword [0x43de70]
add eax, 8
mov dword [esi + 0xc], 0
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], ecx
jmp dword [eax*4 + 0x43de00]
add edi, 4
mov edi, dword [edi]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43de00]
mov edx, dword [edi]
cmp dword [edi + 0x18], 3
mov ebx, 0
jne case.default.0x420d77
mov ebx, dword [edi + 0x10]
test edx, edx
setne al
test ebx, ebx
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43de08]
mov dword [esi + 0x20], edx
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
inc ebx
cmp byte [ecx], 0
jne case.default.0x420dc8
mov dword [esi + 0x48], edi
mov edi, edx
sub ecx, edx
inc ecx
shr ecx, 1
mov dword [esi + 0x40], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409090
add esp, 4
mov ecx, eax
mov eax, dword [case.0x420e28.50]
mov dword [esi + 0x18], eax
movsx eax, byte [edi]
xor edx, edx
test eax, eax
setne dl
mov dword [esi + 0x44], ecx
jmp dword [edx*4 + 0x43de10]
mov dword [esi + 8], edi
inc edi
mov edx, eax
or edx, 0x20
lea ebx, [edx - 0x61]
cmp ebx, 5
ja case.default.0x420dee
add edx, 0xffffffa9
movsx ebx, byte [edi]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43de18]
mov eax, edx
jmp dword [esi + 0x18]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x420e10
mov edx, 0xffffffff
jmp 0x420e1e
mov edx, eax
not edx
and edx, 0x30
and eax, 0xffffffcf
sub eax, edx
mov edx, eax
movsx ebx, byte [edi]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43de18]
shl edx, 4
add dword [esi + 8], 2
mov eax, ebx
or eax, 0x20
lea edi, [eax - 0x61]
cmp edi, 5
ja 0x420e50
add eax, 0xffffffa9
or eax, edx
mov edx, eax
mov edi, dword [esi + 8]
jmp dword [esi + 0x18]
lea eax, [ebx - 0x30]
cmp eax, 0xa
jb 0x420e5f
mov eax, 0xffffffff
jmp 0x420e6d
mov eax, ebx
not eax
and eax, 0x30
and ebx, 0xffffffcf
sub ebx, eax
mov eax, ebx
mov edi, dword [esi + 8]
or eax, edx
mov edx, eax
jmp dword [esi + 0x18]
mov byte [ecx], al
mov edx, eax
nop
nop
nop
nop
nop
mov byte [ecx], dl
jmp dword [0x43de28]
inc ecx
movsx eax, byte [edi]
xor edx, edx
test eax, eax
setne dl
jmp dword [edx*4 + 0x43de10]
mov byte [ecx], 0
push 0
push 0x10
push 0
push dword [esi + 0x20]
call fcn.00422870
add esp, 0x10
mov dword [esi + 8], eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor edi, edi
xor eax, eax
mov dword [esi + 0x20], edx
cmp ecx, edx
setne al
jmp dword [eax*4 + 0x43de30]
mov edi, dword [ecx]
xor eax, eax
jmp dword [eax*4 + 0x43de40]
add ecx, 8
xor eax, eax
cmp ecx, dword [esi + 0x20]
setne al
jmp dword [eax*4 + 0x43de30]
mov ebx, dword [ecx + 4]
mov eax, ebx
shr eax, 0x1c
shl ebx, 4
or ebx, 1
xor eax, dword [esi + 0x18]
xor ebx, dword [esi + 8]
xor edx, edx
or ebx, eax
sete dl
jmp dword [edx*4 + 0x43de38]
mov eax, 1
jmp dword [eax*4 + 0x43de40]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43de48]
mov edi, dword [esi + 0x48]
jmp dword [0x43de58]
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x40]
mov dword [eax], ecx
mov ecx, dword [esi + 0x44]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x420f9d
mov ecx, dword [esi + 0x68]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0x54]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x3234ab19
push dword [0x441034]
call fcn.00435820
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0x68]
push 0
push dword [esi + 0x6c]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43de50]
mov edi, dword [esi + 0x48]
jmp dword [0x43de58]
movzx eax, byte [edi]
test al, al
mov edx, dword [esi + 0x1c]
je 0x420fcd
inc edi
mov ecx, dword [esi + 0x54]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x420fc0
jmp 0x420fd0
mov ecx, dword [esi + 0x54]
mov word [edx], 0x203a
mov eax, edx
add eax, 2
mov edx, dword [ecx]
test edx, edx
je 0x42100e
mov ecx, dword [ecx + 4]
mov edi, edx
and edi, 3
je 0x421015
mov dword [esi + 8], edx
xor ebx, ebx
nop
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x420ff0
add eax, ebx
mov edi, dword [esi + 8]
mov edx, edi
sub edx, ebx
mov ebx, eax
jmp 0x421017
mov ebx, eax
mov edi, dword [esi + 0x48]
jmp 0x421059
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0x48]
jb 0x421059
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x421020
mov byte [ebx], 0xa
inc ebx
mov dword [esi + 0x1c], ebx
push 0xaa39f1ac
push dword [0x44101c]
call fcn.00435820
add esp, 8
mov ecx, dword [esi + 0x54]
push dword [ecx + 4]
call eax
mov al, 1
mov dword [esi + 0xc], eax
jmp dword [0x43de58]
push dword [esi + 0x44]
call fcn.004090a0
add esp, 4
add edi, 4
mov edi, dword [edi]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43de00]
push edi
call fcn.004090a0
add esp, 4
push edi
call fcn.004090a0
add esp, 4
jmp dword [0x43ddbc]
test byte [ecx], 0x93
cli
inc ecx
add byte [eax - 0x5fffbe06], ah
cli
inc ecx
add byte [eax - 0x5dffbe06], ah
cli
inc ecx
add byte [edi - 6], dh
inc ecx
add cl, cl
test byte [ecx], 0x89
cli
inc ecx
add byte [ecx - 0x2effbe06], dh
test byte [ecx], 0xe0
test byte [ecx], 0xe0
test byte [ecx], 0xf6
test byte [ecx], 0x20
test dword [ecx], case.0x41f644.14
and dh, bh
inc ecx
add byte [eax], ah
test dword [ecx], case.0x41f644.18
push eax
test dword [ecx], case.0x41f644.20
pop ebp
test dword [ecx], case.0x41f644.20
test byte [ecx], 0x9f
test byte [ecx], 0x9f
test dword [ecx], case.0x41f644.20
sal edi, cl
inc ecx
add byte [edi], dh
stc
inc ecx
add byte [eax - 7], al
test byte [ecx], 0xd3
test dword [ecx], case.0x41f7cc.2
inc eax
stc
inc ecx
add byte [ebx - 7], bl
inc ecx
add byte [ecx + edi*8 + 0x41], ah
add ah, ch
stc
inc ecx
add dh, dh
stc
inc ecx
add byte [edx - 5], dh
inc ecx
add byte [ebx - 5], bh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx - 5], bh
inc ecx
add al, dl
sti
inc ecx
add al, dl
sti
inc ecx
add al, dl
sti
inc ecx
add byte [edx + 0x3a0041fc], bl
add dword [edx], eax
mov eax, dword [0xc00041fc]
cld
inc ecx
add byte [eax - 0x3fffbe04], dh
cld
inc ecx
add dh, al
cld
inc ecx
add dl, al
std
inc ecx
add byte [eax - 0x1bffbe01], ah
inc dword [ecx]
std
inc ecx
add bh, bh
std
inc ecx
add al, ah
inc byte [ecx]
mov al, 0xff
inc ecx
add al, ah
inc byte [ecx]
in al, 0xff
inc ecx
add byte [ebp + 0x10041ff], bh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x10041ff], bh
add byte [eax], al
add bl, al
inc dword [ecx]
int3
or eax, dword [edx]
and eax, 0x8900420d
or eax, dword [edx]
pop eax
or eax, 222625858
inc edx
add byte [esi + 0xd], bh
inc edx
add byte [edx - 0x2fffbdf2], bl
or eax, 0xdf50042
inc edx
add byte [edi], ch
push cs
inc edx
add byte [eax + 0x7700420e], al
push cs
inc edx
add byte [eax - 0x7fffbdf2], cl
push cs
inc edx
add byte [ebx], bl
cmovb eax, dword [eax]
in eax, dx
push cs
inc edx
add byte [edi], cl
cmovb eax, dword [eax]
ror byte [esi], 1
inc edx
add byte [ebx], bl
cmovb eax, dword [eax]
fisttp dword [esi]
inc edx
add byte [ecx], ch
cmovb eax, dword [eax]
xor cl, byte [edi]
inc edx
add byte [edi + ecx + 0xfad0042], ah
inc edx
add byte [esi + 0x45004210], al
or eax, 0xb920042
inc edx
add byte [ebx - 0x4effbdf5], ch
or eax, dword [edx]
mov esp, 0x3100420b
or dword [edx], eax
push 0x7800420c
or al, 66
add byte [ecx + ecx + 0x42], cl
add byte [eax - 0x74ffbdf4], al
or al, 0x42
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx + 0x100420c], cl
add byte [eax], al
add byte [eax - 0x5fffbdf4], ah
or al, 0x42
add byte [eax - 0x5dffbdf4], ah
or al, 0x42
add byte [ebx + 0x15], ch
inc edx
add byte [eax + 0x71004215], ch
adc eax, 0x157c0042
inc edx
add byte [eax - 0x4fffbde9], al
pop ss
inc edx
add byte [edi + 0x1c], bl
inc edx
add bh, dl
pop ss
inc edx
add byte [esi], bh
sbb byte [edx], al
adc al, 0x18
inc edx
add byte [esi], bh
sbb byte [edx], al
inc esp
sbb byte [edx], al
mov bl, 0x1a
inc edx
add bl, al
sbb al, byte [edx]
invalid