Function at 0x420029
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x478
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x70], 0x93ec91eb
mov dword [esp + 0x74], 0x9fff9dfd
mov dword [esp + 0x78], 0x9bae99e9
mov dword [esp + 0x7c], 0xa7dca5f5
mov dword [esp + 0x80], 0xa3a0a1c9
mov dword [esp + 0x84], 0
mov dword [esp + 0x87], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x1a
ja 0x41e70e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x70]
mov edx, 0xec
sub edx, eax
add eax, 0xf7cc9013
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x7b
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x1b
jb 0x41e6d0
lea edi, [esp + 0x70]
lea ecx, [esp + 0x58]
push edi
call fcn.00431c10
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x43dcec]
lea ecx, [esp + 0x58]
push 0x410
call fcn.00431e70
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x43dcf4]
mov dword [esp + 0x70], 0xe2db90e5
mov dword [esp + 0x74], 0x98e2cde8
mov dword [esp + 0x78], 0xece5ebc9
mov dword [esp + 0x7c], 0xc7ded6f5
mov dword [esp + 0x80], 0xd8f3eac6
mov dword [esp + 0x84], 0xdffce6fd
mov dword [esp + 0x88], 0xdac1fec2
mov dword [esp + 0x8c], 0xc6ffc4eb
mov dword [esp + 0x90], 0xe6e8d6ea
mov dword [esp + 0x94], 0xceeb05d9
mov dword [esp + 0x98], 0x3302e9e9
mov dword [esp + 0x9c], 0
mov byte [esp + 0xa0], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x30
ja 0x41e81e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x70]
mov edx, 0x2b
sub edx, eax
add eax, 0xa0ea79d4
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x34
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x31
jb 0x41e7e0
lea eax, [esp + 0x24]
lea ecx, [esp + 0x58]
push 0
push 0x2b
push edi
push eax
call fcn.00432420
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
xor eax, eax
cmp ebx, esi
sete al
mov dword [esp + 0x30], esi
jmp dword [eax*4 + 0x43dcfc]
mov eax, esi
sub eax, ebx
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00409030
add esp, 4
jmp dword [0x43dd10]
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x71]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x68], ecx
mov ecx, eax
xor eax, eax
cmp ebx, esi
setne al
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
jmp dword [eax*4 + 0x43dd14]
jmp dword [0x43dd24]
mov ebx, dword [esp + 0x54]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43dd2c]
jmp dword [0x43dd8c]
add ebx, 4
xor eax, eax
cmp ebx, esi
setne al
jmp dword [eax*4 + 0x43dd14]
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.004091d0
add esp, 0xc
lea eax, [esp + 0x40]
lea ecx, [esp + 0x58]
push eax
push 0x400
push edi
push esi
call fcn.004322b0
mov ecx, dword [case.0x41e844.17]
nop
nop
jmp ecx
cmp eax, 0xc0000000
setae al
cmp dword [esp + 0x40], 0
sete cl
or cl, al
movzx eax, cl
mov esi, dword [esp + 0x30]
jmp dword [eax*4 + 0x43dd44]
mov eax, 1
jmp dword [eax*4 + 0x43dd4c]
xor eax, eax
jmp dword [eax*4 + 0x43dd4c]
mov byte [esp + 0x46f], 0
movzx eax, byte [esp + 0x70]
xor edx, edx
test al, al
je 0x41e961
mov ecx, edi
nop
nop
cmp al, 0x2e
je 0x41e95f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x41e950
jmp 0x41e961
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x43dd54]
movzx eax, byte [edx + 1]
inc edx
mov dword [esp + 0x1c], 0
test al, al
mov dword [esp + 0xc], edx
je 0x41e9a3
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x41e99f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x41e990
jmp 0x41e9a3
mov dword [esp + 0x1c], ecx
xor eax, eax
cmp dword [esp + 0x1c], 0
setne al
jmp dword [eax*4 + 0x43dd5c]
mov dword [esp + 0x6c], ebx
jmp dword [0x43dd68]
push ebx
call fcn.00402f00
add esp, 4
mov ebx, dword [esp + 0x6c]
add ebx, 4
xor eax, eax
cmp ebx, esi
setne al
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0x43dd14]
push dword [esp + 4]
call fcn.00409040
add esp, 4
push ebx
call fcn.00402960
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43dd7c]
mov dword [esp + 0x40], 0x3a28e8b
mov ecx, dword [esp + 0x68]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 9
ja 0x41ea70
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx + 0x40]
mov esi, 0xd4
sub esi, ecx
add ecx, 0xc432552b
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0xd3
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, 0xa
jb 0x41ea30
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.00402720
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43dd84]
movzx ecx, byte [eax]
test cl, cl
je 0x41eaab
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41eaa0
mov word [edi], 0x203a
add edi, 2
mov esi, dword [esp + 0x30]
movzx eax, byte [esp + 0x70]
test al, al
je 0x41eadb
mov ecx, dword [esp + 0x64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ead0
mov byte [edi], 0xa
inc edi
mov dword [esp + 0x38], edi
mov al, 1
mov dword [esp + 0x54], eax
jmp case.0x41e9ad.8
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov esi, dword [esp + 0xc]
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax - 1]
cmp eax, 0x3d
mov dword [esp + 4], ecx
je 0x41eb12
cmp eax, 0x2e
jne 0x41eb13
dec edx
movzx eax, byte [esi + ecx - 2]
cmp eax, 0x3d
je 0x41eb22
cmp eax, 0x2e
jne 0x41eb29
mov eax, edx
not eax
lea edx, [eax + edx*2]
mov eax, edx
and eax, 1
mov dword [esp + 0x3c], edx
mov ecx, edx
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x1c], esi
je 0x41ec50
xor ecx, ecx
mov esi, 2
jmp 0x41eb74
lea eax, [esi + 4]
add esi, 2
mov ecx, dword [esp + 0x18]
cmp esi, edx
mov esi, eax
jae 0x41ec50
mov dword [esp + 8], ecx
mov edi, dword [esp + 0xc]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00416290
add esp, 4
mov bh, al
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00416290
add esp, 4
mov bl, al
shl bh, 2
shr al, 4
and al, 3
or al, bh
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov byte [ecx + edx], al
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 4]
cmp esi, edx
jae 0x41eb60
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + esi]
push eax
call fcn.00416290
mov edx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x41eb60
shl bl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, bl
mov ebx, dword [esp + 8]
lea edi, [ebx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
mov byte [edi + ebx + 1], cl
lea ecx, [esi + 1]
cmp ecx, edx
jae 0x41eb60
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + esi + 1]
push ecx
mov ebx, eax
call fcn.00416290
mov edx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x41eb60
mov ecx, ebx
shl cl, 6
add al, cl
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov byte [ecx + edi + 2], al
add edi, 3
mov dword [esp + 0x18], edi
jmp 0x41eb60
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax], 0
push ecx
call fcn.00401f10
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov esi, dword [esp + 0xc]
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax - 1]
cmp eax, 0x3d
je 0x41ec85
cmp eax, 0x2e
jne 0x41ec86
dec edx
movzx eax, byte [esi + ecx - 2]
cmp eax, 0x3d
mov dword [esp + 0x18], ecx
je 0x41ec99
cmp eax, 0x2e
jne 0x41eca0
mov eax, edx
not eax
lea edx, [eax + edx*2]
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 4], eax
cmp dword [esp + 0x1c], esi
je 0x41edb0
xor edx, edx
mov edi, 2
jmp 0x41ece0
mov edx, dword [esp + 0x14]
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x41edb0
mov dword [esp + 8], edx
mov esi, dword [esp + 0xc]
movzx eax, byte [esi + edi - 2]
push eax
call fcn.00416290
add esp, 4
mov ebx, eax
movzx eax, byte [esi + edi - 1]
push eax
call fcn.00416290
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0x18]
cmp edi, ecx
jae 0x41ecd0
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.00416290
mov edx, esi
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
je 0x41ecd0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 8]
lea edx, [esi + 2]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 4]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x41ecc7
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00416290
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x14]
je 0x41ecd0
shl bl, 6
add al, bl
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x41ecd0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 4]
mov byte [ecx + eax], 0
push ecx
call fcn.00401f10
add esp, 4
mov esi, dword [esp + 0x30]
jmp dword [0x43dd6c]
mov ebx, eax
mov edi, dword [esp + 0x38]
jmp dword [0x43dd74]
xor edi, edi
test ebx, ebx
jne 0x41eed5
jmp 0x41eee2
mov esi, dword [esp + 0x38]
mov byte [esi], 0
mov dword [esp + 0x70], 0xbfbabded
mov dword [esp + 0x74], 0x8bb78681
mov dword [esp + 0x78], 0x8c8086bd
mov dword [esp + 0x7c], 0xb282aec3
mov dword [esp + 0x80], 0xa7c988bd
mov dword [esp + 0x84], 0x95ab8e8b
mov dword [esp + 0x88], 0x9b9ed79b
mov dword [esp + 0x8c], 0x19c
sub esi, dword [esp + 0x34]
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
ja 0x41ee9e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x70]
mov edx, 0xa5
sub edx, eax
add eax, 0x5705015a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x8a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x20
jb 0x41ee60
lea eax, [esp + 0x70]
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x38]
push eax
call fcn.00409d20
mov ebx, eax
jmp dword [0x43dd8c]
push dword [esp + 0x34]
call fcn.00409040
add esp, 4
and bl, 1
mov edi, ebx
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
test ebx, ebx
je 0x41eee2
cmp ebx, esi
je 0x41eee2
push ebx
call fcn.00409040
add esp, 4
mov ebx, edi
lea ecx, [esp + 0x58]
call fcn.00431fa0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43dddc]
mov ebx, edi
mov dword [esp + 0x30], 0xdb79d97c
mov dword [esp + 0x34], 0xd740d543
mov dword [esp + 0x38], 0xd34bd14e
mov dword [esp + 0x3c], 0xcf6acd53
mov dword [esp + 0x40], 0xcb5dc96b
mov dword [esp + 0x44], 0xc758c552
mov dword [esp + 0x48], 0xc35dc159
mov dword [esp + 0x4c], 0x3fb03d6a
mov dword [esp + 0x50], 0x3ba439a4
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0x3534
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x2f
ja 0x41f015
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x1b
sub esi, ecx
add ecx, 0x42f428e4
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0xc4
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x30
jb 0x41efc0
lea edi, [esp + 0x9c]
lea edx, [esp + 0x30]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41f050
cmp eax, 0xffffffd9
jge 0x41f4a2
mov eax, 0xffffffff
jmp 0x41f4a5
xor ebx, ebx
test ecx, ecx
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x43ddd4]
jmp dword [edx*4 + 0x43dd94]
mov dword [esp + 0x30], 0x6bc46dc8
mov dword [esp + 0x34], 0x67dd69d5
mov dword [esp + 0x38], 0x63cd65dd
mov dword [esp + 0x3c], 0x5ff061cc
mov dword [esp + 0x40], 0x5bfe5df5
mov dword [esp + 0x44], 0x579759ed
mov dword [esp + 0x48], 0x53ea55eb
mov dword [esp + 0x4c], 0x4ffc51e9
mov dword [esp + 0x50], 0x4bee4df1
mov dword [esp + 0x54], 0x47f549e7
mov dword [esp + 0x58], 0x43ee45fe
mov dword [esp + 0x5c], 0x3fff41eb
mov dword [esp + 0x60], 0x3b873d92
mov dword [esp + 0x64], 0x379c399c
mov dword [esp + 0x68], 0x33a63595
mov dword [esp + 0x6c], 0x2fb331ba
mov dword [esp + 0x70], 0x2b852d88
mov dword [esp + 0x74], 0x27bb29a4
mov dword [esp + 0x78], 0x23b72585
mov word [esp + 0x7c], 0x2120
lea ecx, [esp + 0x7e]
mov byte [ecx + 2], 0
mov word [ecx], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x50
ja 0x41f1a5
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xed
sub esi, ecx
add ecx, 0x22e9b12
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0x82
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x51
jb 0x41f150
lea ecx, [esp + 8]
lea edx, [esp + 0x30]
push 0
push 0
push eax
push ecx
push edx
call fcn.004363e0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43dd9c]
mov ebx, edi
lea edi, [esp + 0x2c]
mov eax, esp
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
call fcn.00436860
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43dda4]
mov ecx, dword [esp + 0x2c]
lea eax, [ecx*2 + 2]
inc ecx
jns 0x41f207
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov esi, eax
mov dword [esp + 0x30], 0x2bb82de5
mov dword [esp + 0x34], 0x178a29b7
mov dword [esp + 0x38], 0x138615b5
mov dword [esp + 0x3c], 0x1fae1184
mov dword [esp + 0x40], 0x1b861dbd
mov dword [esp + 0x44], 0x70619b0
lea eax, [esp + 0x7e]
mov byte [eax - 0x34], 0
mov word [eax - 0x36], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x9c]
cmp eax, 0x1a
ja 0x41f2c3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0x25
sub edx, eax
add eax, 0x35c7e9da
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0xa
mov ecx, dword [esp + 0x9c]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
cmp eax, 0x1b
jb 0x41f270
push edi
push esi
push 0
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x18]
call fcn.00436ef0
add esp, 0x14
shr eax, 0x1f
mov ebx, esi
jmp dword [eax*4 + 0x43ddac]
xor ebx, ebx
jmp dword [0x43ddb4]
push esi
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov dword [esp + 0x30], 0xbab9b8b7
lea ecx, [esp + 0x7e]
mov byte [ecx - 0x42], 0
mov dword [ecx - 0x46], 0
mov dword [ecx - 0x4a], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xc
ja 0x41f395
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xe8
sub esi, ecx
add ecx, 0x5759de17
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0x5f
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xd
jb 0x41f340
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x41f3f0
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x41f3db
inc esi
cmp ecx, esi
jne 0x41f3b0
jmp 0x41f3f0
mov ecx, 4
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43ddcc]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x41f3f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
mov edi, ebx
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43ddbc]
lea eax, [esp + 0x30]
push eax
call fcn.00435950
add esp, 4
cmp dword [esp + 0x30], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43ddc4]
xor edx, edx
xor ebx, ebx
cmp edx, 4
setb bl
mov eax, 0x20119
xor ecx, ecx
jmp dword [ebx*4 + 0x43ddcc]
mov ecx, 2
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43ddcc]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
xor eax, eax
mov edi, ebx
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43ddbc]
mov ecx, 2
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43ddcc]
xor eax, eax
jmp 0x4202f6
add eax, 0x26
push eax
call fcn.00409030
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41f4d1
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f4c0
mov word [eax], 0
movzx ecx, word [esp + 0x9c]
test cx, cx
je 0x41f501
lea edx, [esp + 0x9e]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f4f0
mov word [eax], 0
jmp dword [0x43dde4]
push edi
call fcn.00409040
add esp, 4
mov eax, esp
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00435b80
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43ddec]
mov dword [esp + 0x24], 0
xor ebx, ebx
jmp dword [0x43de4c]
jmp dword [0x43ddf4]
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x43deb4]
mov esi, dword [edx]
cmp dword [edx + 0x18], 3
mov ebx, 0
jne case.default.0x41f582
mov ebx, dword [edx + 0x10]
test esi, esi
setne al
test ebx, ebx
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43debc]
mov dword [esp + 0x90], esi
mov dword [esp + 0xd0], edx
mov dword [esp + 0x1c], edi
mov eax, ebx
mov esi, ebx
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x41f5d8
sub ecx, esi
inc ecx
shr ecx, 1
mov dword [esp + 0x88], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409030
add esp, 4
mov ecx, eax
mov eax, dword [case.0x41f747.64]
movsx ebx, byte [esi]
xor edx, edx
test ebx, ebx
setne dl
mov dword [esp + 0x8c], ecx
jmp dword [edx*4 + 0x43dec4]
mov byte [ecx], 0
push 0
push 0x10
push 0
push dword [esp + 0x9c]
call fcn.00421d90
add esp, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], edx
mov ecx, dword [case.0x41ff1d.20]
xor ebx, ebx
xor edx, edx
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x1c]
setne dl
mov edi, edx
mov esi, dword [case.0x41ff1d.26]
mov edx, eax
jmp dword [edi*4 + 0x43dee4]
mov dword [esp + 0x18], edx
mov eax, dword [edx + 4]
mov edi, eax
shr edi, 0x1c
shl eax, 4
or eax, 1
xor edi, dword [esp + 0x90]
xor eax, dword [esp + 0x28]
xor edx, edx
or eax, edi
sete dl
jmp dword [edx*4 + 0x43deec]
mov eax, 1
mov edx, dword [esp + 0x18]
jmp dword [eax*4 + 0x43df04]
jmp ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edx]
xor eax, eax
jmp dword [eax*4 + 0x43df04]
jmp esi
add edx, 8
xor eax, eax
cmp edx, dword [esp + 0x1c]
setne al
jmp dword [eax*4 + 0x43dee4]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43df1c]
mov esi, dword [esp + 0x20]
jmp dword [0x43df3c]
push dword [esp + 0x8c]
call fcn.00409040
add esp, 4
mov dword [esp + 0x20], esi
mov eax, dword [case.0x41f582.0]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xd0]
jmp eax
mov byte [ecx], dl
inc ecx
mov esi, dword [esp + 0x18]
movsx ebx, byte [esi]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x43dec4]
mov dword [esp + 0x28], esi
lea edx, [ebx - 0x30]
cmp edx, 0xa
jb 0x41f719
mov edx, 0xffffffff
mov edi, ebx
not edi
or edi, 0xffffffdf
lea esi, [ebx + edi]
add esi, 0xffffffc0
cmp esi, 6
jae case.default.0x41f747
lea edx, [ebx + edi]
add edx, 0xffffffca
mov edi, dword [esp + 0x28]
lea esi, [edi + 1]
mov dword [esp + 0x18], esi
movsx esi, byte [edi + 1]
xor ebx, ebx
test esi, esi
setne bl
jmp dword [ebx*4 + 0x43decc]
add edi, 2
mov dword [esp + 0x18], edi
lea edi, [esi - 0x30]
cmp edi, 0xa
jb 0x41f762
mov edi, 0xffffffff
mov dword [esp + 0x28], edi
mov ebx, esi
not ebx
or ebx, 0xffffffdf
lea edi, [esi + ebx]
add edi, 0xffffffc0
cmp edi, 6
jb 0x41f780
mov esi, dword [esp + 0x28]
jmp 0x41f785
add esi, ebx
add esi, 0xffffffca
shl edx, 4
or edx, esi
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, esp
jmp dword [0x43df24]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x34], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne 0x41f7c0
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x3234ab19
push dword [0x4412e8]
call fcn.00435100
add esp, 8
lea ecx, [esp + 8]
push esi
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x48]
push ecx
call eax
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x34], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne 0x41f830
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x3234ab19
push dword [0x4412e8]
call fcn.00435100
add esp, 8
lea ecx, [esp + 8]
push esi
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x48]
push ecx
call eax
jmp dword [0x43df2c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43df34]
mov esi, dword [esp + 0x20]
jmp dword [0x43df3c]
movzx eax, byte [ebx]
test al, al
mov ecx, dword [esp + 0x20]
je 0x41f8bb
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x41f8b0
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov esi, dword [esp]
test esi, esi
je 0x41f8fb
mov ecx, dword [esp + 4]
mov edx, esi
and edx, 3
je 0x41f8ff
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x41f8e0
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x41f901
mov esi, eax
jmp 0x41f949
mov edx, esi
cmp esi, 4
mov esi, edi
jb 0x41f949
nop
nop
nop
nop
nop
nop
nop
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
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x41f910
mov byte [esi], 0xa
inc esi
push 0xaa39f1ac
push dword [0x4412d0]
call fcn.00435100
add esp, 8
push dword [esp + 4]
call eax
mov al, 1
mov dword [esp + 0x10], eax
jmp dword [0x43df3c]
mov dword [esp + 0x24], edx
jmp dword [0x43de3c]
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.00421cf0
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43de44]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x94]
mov byte [edi + esi], 0
push 0x20
call fcn.00409030
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 [esp + 0x20], eax
mov ecx, eax
push esi
push edi
call fcn.004219a0
movzx eax, al
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x43de14]
mov dword [esp + 0x30], 0xa7b4ae8b
mov dword [esp + 0x34], 0x8a94849b
mov dword [esp + 0x38], 0x9783bfd7
mov dword [esp + 0x3c], 0xbcd98092
mov dword [esp + 0x40], 0x9e8b8494
mov dword [esp + 0x44], 0x9495b4c3
mov dword [esp + 0x48], 0x8f848c87
mov dword [esp + 0x4c], 0xfd8f
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x1f
ja 0x41fa94
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0x23
sub edx, eax
add eax, 0xc6d32fdc
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0xfc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x20
jb 0x41fa50
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x30]
push eax
call fcn.00421b90
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x43de1c]
add eax, 8
xor ebx, ebx
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
xor edx, edx
xor esi, esi
mov dword [esp + 0x88], 0
jmp dword [eax*4 + 0x43de24]
not eax
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x8c]
mov dword [edx + ecx + 4], eax
add ebx, 8
add edi, 4
mov edi, dword [edi]
xor eax, eax
test edi, edi
setne al
mov esi, edx
jmp dword [eax*4 + 0x43de24]
mov dword [esp + 0x28], edi
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov edi, ebx
sub edi, esi
mov ecx, dword [esp + 0x88]
cmp ebx, ecx
mov dword [esp + 0x8c], edi
je 0x41fb38
mov dword [esp + 0x1c], ebx
mov ebx, esi
jmp 0x41fbbd
mov eax, ecx
sub eax, esi
sar eax, 3
mov ecx, edi
mov edi, eax
shr edi, 1
add edi, eax
mov eax, ecx
sar eax, 3
inc eax
cmp edi, eax
ja 0x41fb53
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00409030
add esp, 4
mov ebx, eax
test esi, esi
je 0x41fbab
mov edx, dword [esp + 0x88]
cmp esi, edx
je 0x41fba2
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x41fb80
push esi
call fcn.00409040
add esp, 4
lea ecx, [ebx + edi*8]
mov eax, ebx
mov edi, dword [esp + 0x8c]
add eax, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x88], ecx
mov dword [ebx + edi], 0
mov dword [esp + 0x24], ebx
mov dword [ebx + edi + 4], 0
mov ebx, 0xffffffff
xor eax, eax
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x41fbf0
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
push eax
call fcn.00409030
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0x24]
mov dword [eax + edi], ecx
mov eax, ecx
mov ecx, dword [esp + 0x14]
shr ecx, 2
mov edx, dword [esp + 0x18]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esp + 0x14]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
mov edi, eax
add edx, dword [esp + 0x18]
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esp + 0x90], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
jne 0x41fc73
mov ecx, dword [esp + 0x14]
and ecx, 2
movzx eax, byte [edx + ecx]
mov edx, dword [esp + 0x90]
mov byte [edx + ecx], al
test ebx, ebx
je 0x41fd3e
cmp ebx, 1
mov edi, dword [esp + 0x28]
jne 0x41fc8c
mov eax, 0xffffffff
test bl, 1
je 0x41fae0
jmp 0x41fd0b
and esi, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
shr ecx, 8
movzx edx, byte [edi]
xor edx, eax
xor edx, 0x3fffff00
or eax, 0xff
and eax, edx
mov eax, dword [eax*4 + 0x4397c8]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
sub ecx, edx
mov eax, ecx
shr eax, 8
movzx edx, byte [edi + 1]
add edi, 2
xor edx, ecx
xor edx, 0x3fffff00
or ecx, 0xff
and ecx, edx
mov ecx, dword [ecx*4 + 0x4397c8]
mov edx, ecx
and edx, eax
add eax, ecx
add edx, edx
sub eax, edx
add esi, 0xfffffffe
jne 0x41fca0
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
test bl, 1
je 0x41fae0
mov ecx, eax
shr ecx, 8
mov edx, dword [esp + 0x18]
movzx edx, byte [edx]
xor edx, eax
xor edx, 0x3fffff00
or eax, 0xff
and eax, edx
mov eax, dword [eax*4 + 0x4397c8]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
sub ecx, edx
mov eax, ecx
jmp 0x41fae0
xor eax, eax
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
jmp 0x41fae6
lea eax, [esp + 0xc8]
push 0
push eax
push dword [esp + 0xa0]
call fcn.00435f30
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x14]
jmp dword [eax*4 + 0x43de84]
mov esi, dword [esp + 0xc8]
lea eax, [esi + 1]
push eax
call fcn.00409030
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xa4]
call fcn.00436030
add esp, 0x10
mov ecx, dword [case.0x41faab.31]
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x14]
jmp dword [eax*4 + 0x43de9c]
mov esi, dword [esp + 0xc8]
mov byte [edi + esi], 0
push 0x20
call fcn.00409030
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 [esp + 0xc4], eax
mov ecx, eax
push esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0xd0], edi
push edi
call fcn.004219a0
movzx eax, al
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x1c]
jmp dword [eax*4 + 0x43dea4]
mov dword [esp + 0x30], 0xff0ef41b
mov dword [esp + 0x34], 0x4fe0efb
mov dword [esp + 0x38], 0xff03173f
mov dword [esp + 0x3c], 0xea3902f0
mov dword [esp + 0x40], 0xfbfe0a
mov dword [esp + 0x44], 0xd01dcc3
mov dword [esp + 0x48], 0x7f1f60c
mov dword [esp + 0x4c], 0xeff5f6d7
mov word [esp + 0x50], 0x85ed
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2f
ja 0x41fef9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xe
sub edx, eax
add eax, 0x2f139f1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x69
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x30
jb 0x41fec0
mov ecx, dword [esp + 0xc4]
lea eax, [esp + 0x30]
push eax
call fcn.00421b90
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], esi
jmp dword [ecx*4 + 0x43deac]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xcc]
jmp dword [0x43df54]
mov esi, dword [esp + 0xc4]
mov ecx, esi
call fcn.00421cf0
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43df5c]
jmp dword [0x43df5c]
push edi
call fcn.00409040
add esp, 4
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], 0xbab9b8b7
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x3c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x41ffdb
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xe8
sub esi, ecx
add ecx, 0x5759de17
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0x5f
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x41ffa0
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x420018
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x420010
inc esi
cmp ecx, esi
jne 0x420000
jmp 0x420018
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42003f
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp dword [0x43df64]
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edx
jmp dword [ecx*4 + 0x43df6c]
jmp dword [0x43df84]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp dword [0x43df64]
add eax, 8
mov dword [esp + 0x10], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov dword [esp + 0x20], esi
jmp dword [eax*4 + 0x43deb4]
xor eax, eax
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
sete al
jmp dword [eax*4 + 0x43de74]
mov eax, ebx
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.00409030
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 0x4b1e4d61
mov dword [esp + 0x34], 0x5739493b
mov dword [esp + 0x38], 0x53265535
mov dword [esp + 0x3c], 0x5f2e5111
mov dword [esp + 0x40], 0x5b165d2c
mov dword [esp + 0x44], 0x671a5939
mov dword [esp + 0x48], 0x634f6505
mov dword [esp + 0x4c], 0x6f316104
mov dword [esp + 0x50], 0x6b076d10
mov dword [esp + 0x54], 0x77036909
mov dword [esp + 0x58], 0x73067510
mov dword [esp + 0x5c], 0x7f117103
mov dword [esp + 0x60], 0x7b0e7d1d
mov dword [esp + 0x64], 0x87fc794a
mov dword [esp + 0x68], 0x83e885e8
lea eax, [esp + 0x6c]
mov word [esp + 0x6c], 0x8180
mov dword [esp + 0x6e], 0
mov word [esp + 0x72], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x43
ja 0x4201b6
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xb5
sub esi, ecx
add ecx, 0xf025254a
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0xfa
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x44
jb 0x420170
lea esi, [esp + 0xd4]
lea edx, [esp + 0x30]
mov edi, esi
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x4412d8]
mov edi, dword [esp + 0x2c]
test edi, edi
jns 0x420209
mov eax, 0xffffffff
jmp 0x42020c
xor eax, eax
jmp 0x4202b8
lea eax, [edi + edi]
mov dword [esp + 0x1c], ebx
push eax
call fcn.00409030
add esp, 4
mov esi, eax
lea eax, [esp + 0x2c]
push eax
push edi
push esi
push 0x1e
lea eax, [esp + 0xe4]
push eax
push 0
call dword [0x4412d8]
lea eax, [esp + 0x98]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xa4], esi
push esi
call fcn.00435b80
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43de7c]
xor edx, edx
mov esi, dword [esp + 0x14]
mov ebx, esi
mov edi, dword [ebp + 8]
jmp dword [0x43df64]
mov dword [esp + 0x10], edx
push dword [esp + 0x94]
call fcn.00409040
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edx
jmp dword [ecx*4 + 0x43df6c]
jmp dword [0x43df78]
jmp dword [0x43df84]
push esi
mov esi, eax
call fcn.00409040
mov eax, esi
add esp, 4
and al, 1
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4202f6
cmp esi, ebx
je 0x4202f6
mov edi, eax
jmp 0x4202d7
add esi, 8
cmp esi, ebx
je 0x4202e8
mov eax, dword [esi]
test eax, eax
je 0x4202d0
push eax
call fcn.00409040
add esp, 4
jmp 0x4202d0
push dword [esp + 0x24]
call fcn.00409040
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esp + 8]
call fcn.00435f30
add esp, 0xc
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esp + 8]
call fcn.00435f30
add esp, 0xc
jmp dword [0x43ddfc]
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], esi
jmp dword [eax*4 + 0x43de04]
mov esi, dword [esp + 0x2c]
lea eax, [esi + 1]
push eax
call fcn.00409030
add esp, 4
push 0
push esi
mov dword [esp + 0x9c], eax
push eax
push dword [esp + 0xc]
call fcn.00436030
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x24], 0
jmp dword [eax*4 + 0x43de0c]
jmp dword [0x43de44]
push dword [esp + 0x94]
call fcn.00409040
add esp, 4
mov eax, dword [esp]
mov dword [esp + 0x30], 0xbab9b8b7
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x3c], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xc
ja 0x420416
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xe8
sub esi, ecx
add ecx, 0x5759de17
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0x5f
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xd
jb 0x4203d0
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x420448
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x420440
inc esi
cmp ecx, esi
jne 0x420430
jmp 0x420448
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x420458
mov esi, dword [esp + 0x10]
jmp dword [0x43de4c]
jmp dword [0x43de58]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov esi, dword [esp + 0x10]
jmp dword [0x43de4c]
mov eax, ebx
mov byte [ebx], 0
mov dword [esp + 0x30], 0xe7e0e1d5
mov dword [esp + 0x34], 0xe3fff0f9
mov dword [esp + 0x38], 0xe6eee8f5
mov dword [esp + 0x3c], 0xc8d8f82b
mov dword [esp + 0x40], 0xff11d6c5
mov dword [esp + 0x44], 0xd9c3d8d3
mov dword [esp + 0x48], 0xd3d41fd3
mov word [esp + 0x4c], 0x35d6
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
sub eax, esi
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x27
ja 0x42051b
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x2c
sub esi, ecx
add ecx, 0x9951fcd3
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0x3b
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x28
jb 0x4204e0
mov ecx, edi
push eax
mov esi, dword [esp + 0x18]
push esi
lea eax, [esp + 0x38]
push eax
call fcn.00409d20
mov eax, ebx
mov byte [ebx], 0
mov dword [esp + 0x30], 0xe7e0e1d5
mov dword [esp + 0x34], 0xe3fff0f9
mov dword [esp + 0x38], 0xe6eee8f5
mov dword [esp + 0x3c], 0xc8d8f82b
mov dword [esp + 0x40], 0xff11d6c5
mov dword [esp + 0x44], 0xd9c3d8d3
mov dword [esp + 0x48], 0xd3d41fd3
mov word [esp + 0x4c], 0x35d6
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
sub eax, esi
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x27
ja 0x4205db
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x2c
sub esi, ecx
add ecx, 0x9951fcd3
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0x3b
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x28
jb 0x4205a0
mov ecx, edi
push eax
mov esi, dword [esp + 0x18]
push esi
lea eax, [esp + 0x38]
push eax
call fcn.00409d20
jmp dword [0x43df7c]
jmp dword [0x43de6c]
push esi
call fcn.00409040
add esp, 4
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43de5c]
jmp dword [0x43df94]
push dword [esp + 0x7c]
call fcn.00409040
add esp, 4
mov eax, dword [esp + 0x90]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, edi
add ebx, 4
xor eax, eax
cmp ebx, 0xc
setne al
jmp dword [eax*4 + 0x43df8c]
mov ecx, dword [esp + ebx + 0x114]
mov edx, 0xfffffffe
mov eax, edx
cmp word [ecx + edx + 2], 0
lea edx, [edx + 2]
jne 0x420a80
mov dword [esp + 0x64], ecx
mov dword [esp + 0x18], 0xfb04f92a
mov dword [esp + 0x1c], 0xff19fd6b
mov dword [esp + 0x20], 0xf36cf11d
mov dword [esp + 0x24], 0xf701f5d2
mov dword [esp + 0x28], 0xeb0be962
mov dword [esp + 0x2c], 0xef0bed7e
mov word [esp + 0x30], 0xe1ee
lea eax, [esp + 0x18]
mov word [eax + 0x1e], 0
mov dword [eax + 0x1a], 0
mov dword [esp + 0xbc], edx
mov esi, edx
sar esi, 1
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x68]
cmp eax, 0x1f
ja 0x420b44
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0xe0
sub edx, eax
add eax, 0x610101f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc4]
add al, 0x27
mov ecx, dword [esp + 0x68]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x68]
mov eax, dword [esp + 0x68]
cmp eax, 0x20
jb 0x420b00
lea edi, [esp + 0xf8]
lea eax, [esp + 0x18]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x30]
mov ecx, 1
lea edi, [esp + 0x110]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x98]
lea ecx, [esi + eax]
lea edx, [esi + eax]
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x420b8d
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x420bc1
mov edx, dword [esp + 0xb8]
mov eax, edi
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420bb0
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x420bf1
add edx, 2
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 0x420be0
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x420c21
lea edx, [esp + 0xfa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420c10
mov word [eax], 0
lea eax, [esp + 0x94]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00435b80
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0x80], esi
jmp dword [eax*4 + 0x43df9c]
mov eax, edi
mov edi, ebx
xor ebx, ebx
jmp dword [0x43e05c]
push eax
call fcn.00409040
add esp, 4
movzx eax, bl
jmp dword [eax*4 + 0x43e064]
lea eax, [esp + 0xc0]
push 0
push eax
push dword [esp + 0x9c]
call fcn.00435f30
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x43dfa4]
mov esi, dword [esp + 0xc0]
lea eax, [esi + 1]
push eax
call fcn.00409030
add esp, 4
push 0
push esi
mov esi, eax
push eax
push dword [esp + 0xa0]
call fcn.00436030
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x43dfac]
mov eax, dword [esp + 0xc0]
mov byte [esi + eax], 0
push esi
call fcn.00401f10
add esp, 4
xor ecx, ecx
mov dword [esp + 0x8c], eax
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x43dfb4]
mov dword [esp + 8], edx
jmp dword [0x43e034]
mov dword [esp + 0xf4], esi
mov dword [esp + 0x60], edi
jmp dword [0x43dfc0]
push ebx
call fcn.00409040
add esp, 4
mov ebx, dword [esp + 0x54]
add ebx, 4
xor eax, eax
cmp ebx, 0xc
setne al
jmp dword [eax*4 + 0x43df8c]
push dword [esp + 0x8c]
call fcn.00402960
add esp, 4
mov dword [esp + 0x18], 0xe4e11a1f
mov dword [esp + 0x1c], 0x13160816
mov dword [esp + 0x20], 0xdc28e0d6
mov dword [esp + 0x24], 0x2b2e302e
mov dword [esp + 0x28], 0x2cd1d9d9
mov word [esp + 0x2c], 0x38d5
mov byte [esp + 0x2e], 0xb6
mov dword [esp + 0x2f], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1a
ja 0x420df6
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
mov esi, 0xe9
sub esi, ecx
add ecx, 0xf6c8d516
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xc4], esi
mov ecx, dword [esp + 0xc4]
add cl, 0x66
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1b
jb 0x420db0
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00402d10
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x420e10
shr edx, 2
mov esi, ecx
mov dword [esp + 0xc], ecx
movzx ecx, byte [eax + ecx - 1]
cmp ecx, 0x3d
je 0x420e35
cmp ecx, 0x2e
jne 0x420e36
dec edx
mov ecx, dword [esp + 0xc]
movzx ecx, byte [eax + ecx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x84], eax
je 0x420e50
cmp ecx, 0x2e
jne 0x420e5d
mov dword [esp + 0x54], ebx
mov eax, edx
not eax
lea edx, [eax + edx*2]
jmp 0x420e61
mov dword [esp + 0x54], ebx
mov dword [esp + 0x88], edx
lea eax, [edx + 1]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x58], eax
cmp dword [esp + 0xc], 0
je 0x420f7c
xor ebx, ebx
mov esi, 2
jmp 0x420ea0
lea eax, [esi + 4]
add esi, 2
cmp esi, ecx
mov esi, eax
jae 0x420f7c
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x84]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00416290
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00416290
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 8]
mov byte [edx + ebx], cl
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
lea ebx, [edx + 1]
cmp esi, ecx
jae 0x420e90
mov byte [esp + 3], al
movzx eax, byte [edi + esi]
push eax
call fcn.00416290
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
je 0x420e90
movzx edx, byte [esp + 3]
shl dl, 4
mov byte [esp + 3], al
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, dl
mov edx, dword [esp + 8]
lea ebx, [edx + 2]
mov eax, dword [esp + 0x58]
mov byte [eax + edx + 1], cl
mov ecx, dword [esp + 0xc]
lea eax, [esi + 1]
cmp eax, ecx
jae 0x420e90
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00416290
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
movzx edx, byte [esp + 3]
je 0x420e90
shl dl, 6
add al, dl
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 8]
mov byte [edx + ebx + 2], al
add ebx, 3
jmp 0x420e90
mov eax, dword [esp + 0x88]
add eax, 0xfffffffb
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x58]
add eax, 5
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x54]
push dword [esp + 0x8c]
call fcn.00402960
add esp, 4
mov dword [esp + 0x18], 0xe4e11a1f
mov dword [esp + 0x1c], 0x13160816
mov dword [esp + 0x20], 0xdc28e0d6
mov dword [esp + 0x24], 0x2b2e302e
mov dword [esp + 0x28], 0x2cd1d9d9
mov word [esp + 0x2c], 0x38d5
mov byte [esp + 0x2e], 0xb6
mov dword [esp + 0x2f], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1a
ja 0x421046
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
mov esi, 0xe9
sub esi, ecx
add ecx, 0xf6c8d516
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xc4], esi
mov ecx, dword [esp + 0xc4]
add cl, 0x66
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1b
jb 0x421000
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00402d10
add esp, 8
mov edi, 0xffffffff
mov edx, 0xfffffffd
nop
nop
mov ecx, edi
add edx, 3
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x421060
shr edx, 2
movzx ecx, byte [eax + edi - 1]
cmp ecx, 0x3d
je 0x421081
cmp ecx, 0x2e
jne 0x421082
dec edx
movzx ecx, byte [eax + edi - 2]
cmp ecx, 0x3d
mov dword [esp + 0x58], eax
je 0x421095
cmp ecx, 0x2e
jne 0x4210a2
mov dword [esp + 0x54], ebx
mov eax, edx
not eax
lea edx, [eax + edx*2]
jmp 0x4210a6
mov dword [esp + 0x54], ebx
mov dword [esp + 0x88], edx
lea eax, [edx + 1]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0xc], eax
test edi, edi
je 0x4211c7
xor ecx, ecx
mov esi, 2
mov dword [esp + 0x84], edi
jmp 0x4210f2
mov edi, ebx
lea eax, [esi + 4]
add esi, 2
cmp esi, edi
mov esi, eax
jae 0x4211c7
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x58]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00416290
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00416290
mov edx, dword [esp + 0xc]
add esp, 4
shl bl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bl
mov ecx, dword [esp + 0xc]
mov byte [ecx + edx], ah
lea ecx, [edx + 1]
mov edx, dword [esp + 0x84]
mov ebx, edx
cmp esi, edx
jae 0x4210e0
mov byte [esp + 3], al
movzx eax, byte [edi + esi]
push eax
mov edi, ecx
call fcn.00416290
mov ecx, edi
add esp, 4
cmp al, 0x40
mov edi, ebx
je 0x4210e2
movzx ecx, byte [esp + 3]
shl cl, 4
mov byte [esp + 3], al
shr al, 2
and al, 0xf
or al, cl
mov edx, dword [esp + 8]
lea ebx, [edx + 2]
mov ecx, dword [esp + 0xc]
mov byte [ecx + edx + 1], al
lea eax, [esi + 1]
cmp eax, edi
jae 0x4211c0
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00416290
add esp, 4
cmp al, 0x40
mov ecx, ebx
movzx edx, byte [esp + 3]
je 0x4210e2
shl dl, 6
add al, dl
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov byte [ecx + edx + 2], al
add edx, 3
mov ecx, edx
jmp 0x4210e2
mov ecx, ebx
jmp 0x4210e2
mov eax, dword [esp + 0x88]
add eax, 0xfffffffb
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xc]
add eax, 5
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x54]
jmp dword [0x43dfc4]
jmp dword [0x43dfd0]
mov dword [esp + 0x14], 0
push 0x3234ab19
push dword [0x4412e8]
call fcn.00435100
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x68]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x14], 0
push 0x3234ab19
push dword [0x4412e8]
call fcn.00435100
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x68]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
jmp dword [0x43dfd4]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 8], 0
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x60]
jmp dword [ecx*4 + 0x43dfdc]
mov dword [esp + 0x18], 0x6bf66d3f
mov dword [esp + 0x1c], 0x673469f8
mov dword [esp + 0x20], 0x63ea65e8
mov dword [esp + 0x24], 0x5f5e61ec
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
cmp eax, 0x17
ja 0x42130e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0xad
sub edx, eax
add eax, 0xd9df8852
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xc2
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, 0x18
jb 0x4212d0
lea edi, [esp + 0xc4]
lea eax, [esp + 0x18]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0xbc]
add eax, 0x10
cmp esi, 0xfffffff8
jge 0x421348
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x64]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x421381
mov eax, dword [esp + 0x64]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421370
mov word [eax], 0
movzx ecx, word [esp + 0xc4]
test cx, cx
je 0x4213b1
lea edx, [esp + 0xc6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4213a0
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x10]
push dword [esp + 0x18]
push edi
call fcn.00409b70
mov dword [esp + 8], eax
jmp dword [0x43dfe4]
jmp dword [0x43dff0]
push edi
call fcn.00409040
add esp, 4
push edi
call fcn.00409040
add esp, 4
jmp dword [0x43dff4]
mov edi, dword [esp + 0x60]
jmp dword [0x43dffc]
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x94]
mov dword [esp + 0x18], 0xbab9b8b7
lea ecx, [esp + 0x18]
mov byte [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x68]
cmp ecx, 0xc
ja 0x421486
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
movzx edx, byte [esp + edx + 0x18]
mov esi, 0xe8
sub esi, ecx
add ecx, 0x5759de17
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xc4], esi
mov ecx, dword [esp + 0xc4]
add cl, 0x5f
mov edx, dword [esp + 0x68]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
cmp ecx, 0xd
jb 0x421440
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x4214c0
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x4214b0
inc esi
cmp ecx, esi
jne 0x4214a0
jmp 0x4214c0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4218cc
nop
nop
nop
nop
mov edi, ebx
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 8]
jmp dword [0x43e05c]
movzx eax, bl
jmp dword [eax*4 + 0x43e064]
mov dword [esp + 0x18], 0x63d065c2
mov dword [esp + 0x1c], 0x6fcd61f3
mov dword [esp + 0x20], 0x6bf86dc1
mov dword [esp + 0x24], 0x57d5698a
mov dword [esp + 0x28], 0x53c555ca
mov dword [esp + 0x2c], 0x5fff51cc
mov dword [esp + 0x30], 0x5bf75df7
mov dword [esp + 0x34], 0x47cc59fe
mov dword [esp + 0x38], 0x43de45ed
mov dword [esp + 0x3c], 0x4fd441e9
mov dword [esp + 0x40], 0x4be24de2
mov word [esp + 0x44], 0x494a
lea eax, [esp + 0x18]
mov dword [eax + 0x31], 0
mov dword [eax + 0x2e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x34
mov ebx, edi
ja 0x4215ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0xee
sub edx, eax
add eax, 0x7b99a011
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
add al, 0x89
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x35
jb 0x421570
lea edi, [esp + 0xc4]
lea eax, [esp + 0x18]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x44]
lea edi, [esp + 0xf0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x98]
lea ecx, [esi + eax]
lea edx, [esi + eax]
add edx, 0x17
lea eax, [ecx*2 + 0x2e]
test edx, edx
jns 0x4215fb
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x421631
mov edx, dword [esp + 0xb8]
mov eax, ebx
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421620
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x421661
add edx, 2
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 0x421650
mov word [eax], 0
movzx ecx, word [esp + 0xc4]
test cx, cx
je 0x421691
lea edx, [esp + 0xc6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421680
mov word [eax], 0
mov dword [esp + 0x18], 0xcb7ecdbf
mov dword [esp + 0x1c], 0xc74cc975
mov dword [esp + 0x20], 0xc376c579
mov dword [esp + 0x24], 0xdf60c17c
mov word [esp + 0x28], 0xdddc
lea eax, [esp + 0x18]
mov word [eax + 0x1a], 0
mov dword [eax + 0x16], 0
mov dword [eax + 0x12], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1b
ja 0x42172e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0x9d
sub edx, eax
add eax, 0x63bd0062
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x52
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1c
jb 0x4216f0
lea edi, [esp + 0x68]
lea esi, [esp + 0x18]
mov eax, esi
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
mov ecx, 1
lea edi, [esp + 0x78]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0xbc]
add eax, 0x12
cmp dword [esp + 0x80], 0xfffffff7
jge 0x42176c
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x4217a1
add edx, 2
mov eax, edi
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 0x421790
mov word [eax], 0
movzx ecx, word [esp + 0x68]
test cx, cx
je 0x4217d1
lea edx, [esp + 0x6a]
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 0x4217c0
mov word [eax], 0
mov dword [esp + 0x18], 0x302012a
mov dword [esp + 0x1c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x42183e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0x7f
sub edx, eax
add eax, 0xffd58d80
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x80
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x421800
push 0
push 0
push 0
push 0xc00000
push esi
push ebx
push edi
push dword [ebp + 8]
call fcn.00418630
add esp, 0x20
jmp dword [0x43e070]
nop
nop
nop
jmp dword [0x43e078]
movzx eax, al
mov ecx, dword [esp + 0x90]
and cl, 1
movzx ecx, cl
mov edx, eax
not edx
and edx, ecx
xor eax, ecx
add eax, ecx
cmp eax, edx
setne al
mov dword [esp + 0x90], eax
jmp dword [0x43e07c]
push edi
call fcn.00409040
add esp, 4
jmp dword [0x43e084]
jmp dword [0x43e084]
mov ebx, dword [esp + 0x54]
add ebx, 4
xor eax, eax
cmp ebx, 0xc
setne al
jmp dword [eax*4 + 0x43df8c]
mov edi, ebx
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 8]
jmp dword [0x43e05c]
push esi
call fcn.00409040
add esp, 4
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43e048]
push esi
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43e020]
push dword [esp + 0x8c]
call fcn.00402f00
add esp, 4
mov esi, dword [esp + 0xf4]
jmp dword [0x43e034]
jmp dword [0x43e03c]
jmp dword [0x43e014]
push 0xaa39f1ac
push dword [0x4412d0]
call fcn.00435100
add esp, 8
push dword [esp + 0x14]
call eax
push 0xaa39f1ac
push dword [0x4412d0]
call fcn.00435100
add esp, 8
push dword [esp + 0x14]
call eax
jmp dword [0x43e008]
mov esi, dword [esp + 0xc]
jmp dword [0x43e00c]
int3
int1
inc ecx
add al, al
inc ecx
add byte [eax], al
inc ecx
add ah, dh
int1
inc ecx
add byte [eax], al
inc ecx
add ah, ah
inc ecx
add ah, ch
inc ecx
add byte [eax], al
inc ecx
add byte [eax], al
hlt
stc
inc ecx
add byte [edx + 0x720041fa], dh
stc
inc ecx
add byte [0x10041fb], cl
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx - 7], dh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx + edi*8 + 0x41], bh
add byte [ecx - 0x78ffbdfd], al
add eax, dword [edx]
xchg esi, eax
add eax, dword [edx]
push edx
add al, 66
add byte [eax], al
push es
inc edx
add byte [esi], al
push es
inc edx
add byte [edi], cl
push es
inc edx
add byte [eax], al
push es
inc edx
add byte [esi], al
push es
inc edx
add byte [eax], al
push es
inc edx
add byte [eax], al
push es
inc edx
add byte [ecx + 0x4200], al
push es
inc edx
add byte [ebx + 0x2004200], dl
add al, byte [edx]
popal
add al, byte [edx]
dec ebp
std
inc ecx
add byte [ebp - 1], ah
inc ecx
add byte [esi - 3], bh
inc ecx
add byte [eax - 0x4fffbe03], dh
std
inc ecx
add byte [eax - 0x4dffbe03], dh
std
inc ecx
add byte [esi - 1], dl
inc ecx
add dl, cl
std
inc ecx
add byte [edi + edi*8], ah
inc ecx
add byte [0x240041fe], bh
inc dword [ecx]
bound eax, qword [eax]
inc edx
add byte [edi + edi*8], ah
inc ecx
add byte [ebx - 0xb], ah
inc ecx
add byte [eax - 0xb], dl
inc ecx
add byte [ecx - 0x20ffbe0b], cl
cmc
inc ecx
add byte [eax], cl
test dword [ecx], case.0x41f747.64
dec esi
test dword [ecx], case.0x41f747.66
nop
test dword [ecx], case.0x41f747.66
invalid