Function at 0x40e8a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x43b8b4]
mov dword [esp + 0xd0], 0xc33f6b26
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40d00a
nop
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0xd0]
mov esi, 0xdf
sub esi, eax
add eax, 0xbc69a620
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 0x2e0], esi
mov eax, dword [esp + 0x2e0]
add al, 0x20
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40cfc0
mov edx, dword [str.WpM2Co__SUSELL]
mov dword [esp + 0x2e0], 0x7e261211
mov dword [esp + 0x2e4], 0x2e151026
mov dword [esp + 0x2e8], 0x36050c3e
mov dword [esp + 0x2ec], 0xe3d3e09
mov dword [esp + 0x2f0], 0x35440407
mov dword [esp + 0x2f4], 0x736b3701
mov dword [esp + 0x2f8], 0x77c4946
mov dword [esp + 0x2fc], 0x9f533905
mov dword [esp + 0x304], 0
mov dword [esp + 0x300], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x27
ja 0x40d0f3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
mov edi, 0xb7
sub edi, eax
add eax, 0x2e04ec48
xor edi, eax
and edi, esi
xor edi, eax
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x30]
add al, 8
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x28
jb 0x40d0a0
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40d11b
lea esi, [esp + 0x2e1]
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d110
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d13b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40d130
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40d16b
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40d160
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d18b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40d180
mov byte [eax], 0
mov dword [esp + 0x2e0], 0xc375c50b
mov dword [esp + 0x2e4], 0xcf7cc170
mov dword [esp + 0x2e8], 0xcb7ecd65
mov dword [esp + 0x2ec], 0xd73bc976
mov dword [esp + 0x2f0], 0xd353d50a
mov dword [esp + 0x2f4], 0xdf7bd162
mov dword [esp + 0x2f8], 0xdb3cdd18
mov dword [esp + 0x2fc], 0xa768d975
mov dword [esp + 0x300], 0xa310a516
mov dword [esp + 0x304], 0xaf0da115
mov dword [esp + 0x308], 0xab10ad01
mov dword [esp + 0x30c], 0xb719a91d
mov dword [esp + 0x310], 0xb345b504
mov dword [esp + 0x314], 0xbf43b10a
mov dword [esp + 0x318], 0xbb05bd07
mov dword [esp + 0x31c], 0x874bb903
mov dword [esp + 0x320], 0x8335852c
mov dword [esp + 0x324], 0x8f33813c
mov dword [esp + 0x328], 0x8b378d7d
mov dword [esp + 0x32c], 0x973c8934
mov dword [esp + 0x330], 0x9326953d
mov dword [esp + 0x334], 0x9f21913f
mov dword [esp + 0x338], 0x9b379d32
mov dword [esp + 0x33c], 0x678b9936
mov dword [esp + 0x340], 0x63646570
mov byte [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x6c
ja 0x40d32c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
movzx esi, byte [esp + esi + 0x2e0]
mov edi, 0x5e
sub edi, edx
add edx, 0xa22e1da1
xor edi, edx
and edi, esi
xor edi, edx
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xd0]
add dl, 0x99
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x6d
jb 0x40d2e0
sub eax, ecx
mov dword [esp + 0xd0], 0xfb1bf917
mov dword [esp + 0xd4], 0xff67fd6a
mov word [esp + 0xd8], 0xf1fe
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov dword [esp + 0xe2], 0
mov byte [esp + 0xe6], 0
mov dword [esp + 0x1d0], 0
mov edx, dword [esp + 0x1d0]
cmp edx, 0x16
ja 0x40d3e5
nop
nop
mov edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
movzx esi, byte [esp + esi + 0xd0]
mov edi, 0xe0
sub edi, edx
add edx, 0xab05a71f
xor edi, edx
and edi, esi
xor edi, edx
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x30]
add dl, 0x27
mov esi, dword [esp + 0x1d0]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d0]
cmp edx, 0x17
jb 0x40d390
lea edx, [esp + 0xc8]
lea edi, [esp + 0xc0]
lea ebx, [esp + 0x2e0]
lea esi, [esp + 0xd0]
push edx
push edi
push eax
push ecx
push ebx
push esi
push 0x440018
call fcn.0040bf10
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43c240]
xor edi, edi
xor eax, eax
test edi, 0
sete al
jmp dword [eax*4 + 0x43c248]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc8]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov edi, ecx
and edi, 0xfffffffc
imul edi, edx
mov edx, ecx
not edx
add eax, edi
and edx, 1
mov edi, ecx
and edi, 0xfffffffe
sub edi, edx
mov ebx, dword [esp + 0xc0]
shr eax, 2
movzx edx, byte [ebx + edi]
cmp edx, 0x3d
je 0x40d485
cmp edx, 0x2e
jne 0x40d486
dec eax
mov edx, ecx
xor edx, 2
and ecx, 0xfffffffd
add ecx, ecx
sub ecx, edx
movzx ecx, byte [ebx + ecx]
cmp ecx, 0x3d
je 0x40d4a0
cmp ecx, 0x2e
jne 0x40d4a1
dec eax
push eax
call fcn.004090a0
add esp, 4
mov edi, eax
push eax
push ebx
call fcn.0042f580
add esp, 8
push dword [esp + 0xc0]
call fcn.00432090
add esp, 4
xor eax, eax
test edi, edi
sete al
lea ebx, [esp + 0x2e0]
jmp dword [eax*4 + 0x43c248]
push edi
call fcn.00401f20
add esp, 4
mov dword [esp + 0x2c], eax
jmp dword [0x43c250]
push edi
call fcn.004090b0
add esp, 4
push dword [esp + 0x2c]
call fcn.00402970
add esp, 4
mov dword [esp + 0x14], eax
mov word [esp + 0x2e0], 0x767c
mov byte [esp + 0x2e2], 4
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov byte [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xb
ja 0x40d59a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0xfe
sub edx, eax
add eax, 0x32611601
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xf9
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xc
jb 0x40d550
push ebx
push dword [esp + 0x18]
call fcn.00402ac0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43c258]
call fcn.0042e030
movzx eax, al
jmp dword [eax*4 + 0x43c260]
jmp dword [0x43c26c]
mov word [esp + 0x2e0], 0x9d85
mov byte [esp + 0x2e2], pe_nt_image_headers32
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov word [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40d65a
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0xd0
sub edx, eax
add eax, 0xb195512f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xb7
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40d610
lea edi, [esp + 0x2e0]
push edi
push dword [esp + 0x18]
call fcn.00402ac0
add esp, 8
mov word [esp + 0x2e0], 0x3e2b
mov byte [esp + 0x2e2], 0xa0
mov dword [esp + 0x2e3], 0
mov word [esp + 0x2e7], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 8
ja 0x40d6fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0xe4
sub edx, eax
add eax, 0x71ba3e1b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x43
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 9
jb 0x40d6b0
push edi
mov edi, dword [esp + 0x18]
push edi
call fcn.00402ac0
add esp, 8
push edi
call fcn.0040e600
add esp, 4
push dword [esp + 0x2c]
call fcn.00402f10
add esp, 4
lea edi, [esp + 0x1d0]
mov ecx, edi
push 1
call fcn.00409b00
push edi
call fcn.0041b8c0
add esp, 4
mov ecx, edi
call fcn.0040a440
lea edi, [esp + 0xc80]
mov ecx, edi
push 3
call fcn.00409b00
push edi
call fcn.0041c080
add esp, 4
mov ecx, edi
call fcn.0040a440
lea edi, [esp + 0xc18]
mov ecx, edi
push 1
call fcn.00409b00
push edi
call fcn.0041c2a0
add esp, 4
mov ecx, edi
call fcn.0040a440
lea edi, [esp + 0xbb0]
mov ecx, edi
push 1
call fcn.00409b00
push edi
call fcn.0041e240
add esp, 4
push edi
call fcn.0041ebc0
add esp, 4
push edi
call fcn.0041f070
add esp, 4
mov ecx, edi
call fcn.0040a440
lea edi, [esp + 0xb48]
mov ecx, edi
push 1
call fcn.00409b00
push edi
call fcn.00420f40
add esp, 4
mov ecx, edi
call fcn.0040a440
lea edi, [esp + 0xae0]
mov ecx, edi
push 1
call fcn.00409b00
push edi
call fcn.00423320
add esp, 4
push edi
call fcn.00429370
add esp, 4
jmp case.0x40d5ae.5
push ebx
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00402ac0
add esp, 8
mov edi, eax
push ebx
call fcn.0040e600
add esp, 4
push dword [esp + 0x2c]
call fcn.00402f10
add esp, 4
lea ebx, [esp + 0x1d0]
mov ecx, ebx
push 1
call fcn.00409b00
push ebx
call fcn.0041b8c0
add esp, 4
mov ecx, ebx
call fcn.0040a440
lea ebx, [esp + 0xc80]
mov ecx, ebx
push 3
call fcn.00409b00
push ebx
call fcn.0041c080
add esp, 4
mov ecx, ebx
call fcn.0040a440
lea ebx, [esp + 0xc18]
mov ecx, ebx
push 1
call fcn.00409b00
push ebx
call fcn.0041c2a0
add esp, 4
mov ecx, ebx
call fcn.0040a440
lea ebx, [esp + 0xbb0]
mov ecx, ebx
push 1
call fcn.00409b00
push ebx
call fcn.0041e240
add esp, 4
push ebx
call fcn.0041ebc0
add esp, 4
push ebx
call fcn.0041f070
add esp, 4
mov ecx, ebx
call fcn.0040a440
lea ebx, [esp + 0xb48]
mov ecx, ebx
push 1
call fcn.00409b00
push ebx
call fcn.00420f40
add esp, 4
mov ecx, ebx
call fcn.0040a440
lea ebx, [esp + 0xae0]
mov ecx, ebx
push 1
call fcn.00409b00
push ebx
call fcn.00423320
add esp, 4
push ebx
call fcn.00429370
add esp, 4
jmp dword [0x43c274]
mov word [esp + 0x2e0], 0x9d85
mov byte [esp + 0x2e2], pe_nt_image_headers32
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov word [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40d99a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0xd0
sub edx, eax
add eax, 0xb195512f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xb7
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40d950
lea edi, [esp + 0x2e3]
lea ebx, [esp + 0x2e0]
push ebx
push dword [esp + 0x18]
call fcn.00402ac0
add esp, 8
mov dword [esp + 0xb8], eax
mov word [esp + 0x2e0], 0x3e2b
mov byte [esp + 0x2e2], 0xa0
mov word [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 8
ja 0x40d800
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0xe4
sub edx, eax
add eax, 0x71ba3e1b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x43
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 9
jb 0x40d9f0
jmp 0x40d800
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x43c278]
push ebx
call fcn.00429520
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a440
lea eax, [esp + 0x23f]
push eax
call fcn.0042eea0
add esp, 4
mov dword [esp + 0x30], 0x747d6d2c
mov word [esp + 0x34], 0x26e
mov byte [esp + 0x36], 0xc0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xd
ja 0x40db03
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0x5e
sub edx, eax
add eax, 0x87160da1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2e0]
add al, 0x99
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0xe
jb 0x40dab0
mov eax, dword [0x43b8b4]
mov dword [esp], 0xa3e73bf8
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 8
ja 0x40db93
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx]
mov edi, 0xe4
sub edi, ecx
add ecx, 0x59ba3c1b
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esp + 0x2e0], edi
mov ecx, dword [esp + 0x2e0]
add cl, 0x43
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 9
jb 0x40db40
mov ecx, dword [str.WpM2Co__SUSELL]
mov dword [esp + 0x2e0], 0xfe869291
mov dword [esp + 0x2e4], 0x98829093
mov dword [esp + 0x2e8], 0xb8b9acb5
mov dword [esp + 0x2ec], 0xe9abaaad
mov dword [esp + 0x2f0], 0xceb0a4b6
mov dword [esp + 0x2f4], 0xe1f6fbf0
mov dword [esp + 0x2f8], 0xd6bea0a4
mov byte [esp + 0x2fc], 0x1c
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x301], 0
mov byte [esp + 0x305], 0
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
cmp edx, 0x25
ja 0x40dc6c
nop
nop
nop
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x1c]
movzx edi, byte [esp + edi + 0x2e0]
mov ebx, 0x27
sub ebx, edx
add edx, 0x6dde02d8
xor ebx, edx
and ebx, edi
xor ebx, edx
mov dword [esp + 0xd0], ebx
mov edx, dword [esp + 0xd0]
add dl, 0x18
mov edi, dword [esp + 0x1c]
mov byte [esp + edi + 0x2e0], dl
inc dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
cmp edx, 0x26
jb 0x40dc20
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x40dc9b
lea esi, [esp + 0xd0]
lea edi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40dc90
mov byte [esi], 0
movzx edx, byte [ecx]
test dl, dl
lea ebx, [esp + 0x2e0]
je 0x40dcbb
inc ecx
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dcb0
mov byte [esi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40dcdb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dcd0
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40dcfb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40dcf0
mov byte [esi], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x40dd1b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd10
mov byte [esi], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x40dd4b
lea ecx, [esp + 0x240]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd40
mov byte [esi], 0
mov dword [esp + 0x2e0], 0xfb69f9c3
mov dword [esp + 0x2e4], 0xff68fd64
mov dword [esp + 0x2e8], 0xf36ef159
mov dword [esp + 0x2ec], 0xf7abf566
mov dword [esp + 0x2f0], 0xeb63e942
mov dword [esp + 0x2f4], 0xef4bed7a
mov dword [esp + 0x2f8], 0xe380e1a4
mov dword [esp + 0x2fc], 0xe774e541
mov dword [esp + 0x300], 0xdb44d976
mov dword [esp + 0x304], 0xdf79dd41
mov dword [esp + 0x308], 0xd344d17d
mov dword [esp + 0x30c], 0xd745d549
mov dword [esp + 0x310], 0xcb99c948
mov dword [esp + 0x314], 0xcf93cd42
mov dword [esp + 0x318], 0xc349c147
mov dword [esp + 0x31c], 0xc79bc54b
mov dword [esp + 0x320], 0x3ba93960
mov dword [esp + 0x324], 0x3fa33da8
mov dword [esp + 0x328], 0x33a73161
mov dword [esp + 0x32c], 0x37a835a0
mov dword [esp + 0x330], 0x2bb62991
mov dword [esp + 0x334], 0x2fbd2d8f
mov dword [esp + 0x338], 0x2387218a
mov dword [esp + 0x33c], 0x275b2586
mov dword [esp + 0x340], 0x1b18195c
mov byte [esp + 0x348], 0
mov dword [esp + 0x344], 0
lea eax, [esp + 0xd0]
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x68
ja 0x40ded1
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
mov edi, 0xc0
sub edi, ecx
add ecx, 0x41d2813f
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x30]
add cl, 0x47
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x69
jb 0x40de90
sub esi, eax
mov dword [esp + 0x30], 0x5bfb592f
mov dword [esp + 0x34], 0x57ef55e4
mov word [esp + 0x38], 0x5150
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x14
ja 0x40df5e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
mov edi, 0x8b
sub edi, ecx
add ecx, 0xbe46c474
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0xd4
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x15
jb 0x40df20
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xbc]
lea edi, [esp + 0x30]
push ecx
push edx
push esi
push eax
push ebx
push edi
push 0x440018
call fcn.0040bf10
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43c280]
xor edi, edi
xor eax, eax
test edi, 0
setne al
jmp dword [eax*4 + 0x43c288]
mov ecx, dword [esp + 0xc4]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov esi, ecx
and esi, 0xfffffffc
imul esi, edx
mov edx, ecx
not edx
add eax, esi
and edx, 1
mov edi, ecx
and edi, 0xfffffffe
sub edi, edx
mov esi, dword [esp + 0xbc]
shr eax, 2
movzx edx, byte [esi + edi]
cmp edx, 0x3d
je 0x40dfe8
cmp edx, 0x2e
jne 0x40dfe9
dec eax
mov edx, ecx
xor edx, 2
and ecx, 0xfffffffd
add ecx, ecx
sub ecx, edx
movzx ecx, byte [esi + ecx]
cmp ecx, 0x3d
je 0x40e003
cmp ecx, 0x2e
jne 0x40e004
dec eax
push eax
call fcn.004090a0
add esp, 4
mov edi, eax
push eax
push esi
call fcn.0042f580
add esp, 8
push dword [esp + 0xbc]
call fcn.00432090
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43c288]
push edi
call fcn.00401f20
add esp, 4
mov ebx, eax
jmp dword [0x43c290]
push edi
call fcn.004090b0
add esp, 4
push ebx
call fcn.00411890
add esp, 4
push ebx
call fcn.00402f10
add esp, 4
lea ebx, [esp + 0x2e0]
mov dword [esp + 0x2e0], 0x6bf1f3f0
mov dword [esp + 0x2e4], 0
mov word [esp + 0x2e8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40e0df
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2e0]
mov edx, 0x8d
sub edx, eax
add eax, 0x68e28672
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xe2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40e0a0
push ebx
push dword [esp + 0x18]
call fcn.00402ac0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43c298]
xor eax, eax
cmp dword [esp + 0xb8], 0
setg al
jmp dword [eax*4 + 0x43c2a0]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409b00
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x440321], 0
lea eax, [eax + 1]
jne 0x40e130
mov dword [esp + 0x30], 0xb6a4a040
mov dword [esp + 0x34], 0xafaa7ba3
mov word [esp + 0x38], 0x15a8
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x14
ja 0x40e1be
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x55
sub esi, ecx
add ecx, 0xb63ee7aa
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x5a
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x15
jb 0x40e180
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x440320
lea eax, [esp + 0x38]
push eax
call fcn.00409d00
mov ecx, esi
call fcn.0040a440
mov ecx, esi
call fcn.00409b40
xor eax, eax
cmp dword [esp + 0xb8], 0
setg al
jmp dword [eax*4 + 0x43c2a0]
push 0
call fcn.00435070
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c2a8]
mov dword [esp + 0x30], 0x1b8f19bb
mov dword [esp + 0x34], 0x75005a8
mov dword [esp + 0x38], 0x39a01ad
mov dword [esp + 0x3c], 0xf6e0da1
mov dword [esp + 0x40], 0xb99096a
mov dword [esp + 0x44], 0x77d775e8
mov dword [esp + 0x48], 0x73ee71e2
mov dword [esp + 0x4c], 0x7f297d1c
mov dword [esp + 0x50], 0x7bd379ed
mov dword [esp + 0x54], 0x670665f2
mov dword [esp + 0x58], 0x63f761c3
mov dword [esp + 0x5c], 0x6f386dc0
mov dword [esp + 0x60], 0x6bf269c5
mov dword [esp + 0x64], 0x573655f9
mov dword [esp + 0x68], 0x53055132
mov dword [esp + 0x6c], 0x5f3e5dff
mov dword [esp + 0x70], 0x5bf359c4
mov dword [esp + 0x74], 0x47eb45d1
mov dword [esp + 0x78], 0x43df41d7
mov dword [esp + 0x7c], 0x4f2e4dd0
mov dword [esp + 0x80], 0x4bd6491f
mov dword [esp + 0x84], 0xb7e5b5d4
mov dword [esp + 0x88], 0xb3e5b1d0
mov dword [esp + 0x8c], 0xbf29bd2a
mov dword [esp + 0x90], 0xbb28b91a
mov dword [esp + 0x94], 0xa707a509
mov dword [esp + 0x98], 0xa3c2a10b
mov dword [esp + 0x9c], 0xafceadc2
mov dword [esp + 0xa0], 0xab07a904
mov dword [esp + 0xa4], 0x97f69500
mov dword [esp + 0xa8], 0x939291f2
mov word [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x81
ja 0x40e3a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xd3
sub esi, ecx
add ecx, 0x64c4f62c
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
add cl, 0xcc
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x82
jb 0x40e360
movzx ecx, word [esp + 0x30]
test cx, cx
je 0x40e3d1
lea ebx, [esp + 0x2e0]
lea edx, [esp + 0x32]
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e3c0
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e401
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40e3f0
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0xd472a769
push dword [0x441320]
call fcn.00435170
add esp, 8
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c2b0]
mov eax, dword [esp + 0x1c]
mov dword [esp], 0x82858487
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0xb
ja 0x40e554
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx]
mov esi, 0xbe
sub esi, ecx
add ecx, 0x66745741
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xcc], esi
mov ecx, dword [esp + 0xcc]
add cl, 0x39
mov edx, dword [esp + 0x18]
mov byte [esp + edx], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0xc
jb 0x40e510
mov ecx, dword [0x44132c]
test ecx, ecx
je case.0x40e1f2.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x40e590
inc esi
cmp ecx, esi
jne 0x40e570
jmp case.0x40e1f2.0
push dword [esp + 0x2c]
call fcn.00402f10
add esp, 4
xor eax, eax
jmp 0x40e5f4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e1f2.0
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
lea ecx, [esp + 0xae0]
call fcn.00409b40
lea ecx, [esp + 0xb48]
call fcn.00409b40
lea ecx, [esp + 0xbb0]
call fcn.00409b40
lea ecx, [esp + 0xc18]
call fcn.00409b40
lea ecx, [esp + 0xc80]
call fcn.00409b40
lea ecx, [esp + 0x1d0]
call fcn.00409b40
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
mov dword [esp + 0x150], esi
jmp 0x40e6cf
xor eax, eax
jmp dword [0x43c2c8]
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x154]
inc edi
mov esi, dword [esp + 0x150]
push esi
call fcn.00402ed0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43c2d0]
mov dword [esp + 0x154], edi
push edi
push esi
call fcn.00402ee0
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0x174
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov byte [esp + 0x5a], 0
jmp dword [0x43c2ec]
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja case.0x40e1f2.19
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xff
sub edx, eax
add eax, 0xaa013000
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40e730
jmp case.0x40e1f2.19
jmp dword [0x43c2f0]
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40e770
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xff
sub edx, eax
add eax, 0xaa013000
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40e790
jmp 0x40e770
push 3
push ebx
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c2f8]
mov word [esp + 0x50], 0x59c4
lea eax, [esp + 0x52]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e84f
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x73
sub edx, eax
add eax, 0x723bc68c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x2c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb case.default.0x40e899
push ebx
push edi
call fcn.00402860
add esp, 8
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x142], ax
fldcw word [esp + 0x142]
fistp dword [esp + 0x168]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x168]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43c310]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43c318]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c320]
mov word [esp + 0x50], 0x254f
lea eax, [esp + 0x52]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40e92f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xda
sub edx, eax
add eax, 0xba3dff25
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xfd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40e8f0
push 2
push ebx
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3a0]
mov word [esp + 0xe8], 0xa556
lea eax, [esp + 0xea]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x40e9c4
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x9a
sub edx, eax
add eax, 0xab7daa65
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0x3d
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x40e980
push 2
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3a8]
mov word [esp], 0x575
mov dword [esp + 6], 0
mov dword [esp + 2], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x40ea4c
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
mov edx, 0xfe
sub edx, eax
add eax, 0x939b0001
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0xf9
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x40ea10
push 5
lea eax, [esp + 4]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3b0]
mov word [esp + 0x30], 0xcd52
lea eax, [esp + 0x32]
mov dword [eax + 3], 0
mov dword [eax], 0
jmp dword [0x43c3bc]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 8
ja case.0x40ea63.3
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xe1
sub edx, eax
add eax, 0x9558151e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0x2e
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 9
jb 0x40eaa0
jmp case.0x40ea63.3
mov eax, dword [case.0x40eeac.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43c328]
mov word [esp + 0x50], 0xcd7c
lea eax, [esp + 0x52]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40eb9f
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 + 0x50]
mov edx, 0x9d
sub edx, eax
add eax, 0xdb91e762
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x52
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40eb60
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x50], 0x8d0a
lea eax, [esp + 0x52]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40ec1f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xbd
sub edx, eax
add eax, 0xa678ab42
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x32
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40ebe0
push ebx
push edi
call fcn.00402730
add esp, 8
mov esi, dword [esp + 0x20]
test esi, esi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43c4e0]
mov ecx, esi
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x40ec50
mov dword [esp + 0x14], eax
xor esi, esi
cmp edi, edx
jbe 0x40ec97
cmp byte [edx], 0
je 0x40ec97
xor esi, esi
mov ebx, dword [esp + 0x20]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040ce00
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x40ec97
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ec70
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
lea eax, [esi + esi]
test esi, esi
jns 0x40ecae
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + esi*2]
add ecx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
jae 0x40f2bf
mov esi, dword [esp + 0x28]
cmp ebx, edi
jae 0x40f2bf
mov esi, dword [esp + 0x28]
nop
cmp byte [ebx], 0
je 0x40f2bf
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x40f2bb
add ebx, eax
cmp ebx, edi
mov eax, dword [esp + 0x14]
jb 0x40ecf0
jmp 0x40f2bf
jmp dword [0x43c3c4]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 8
ja 0x40ed30
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xe1
sub edx, eax
add eax, 0x9558151e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0x2e
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 9
jb 0x40ed50
jmp 0x40ed30
mov word [esp + 0x50], 0xb120
lea eax, [esp + 0x52]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40ee0f
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 + 0x50]
mov edx, 0x37
sub edx, eax
add eax, 0x7113e7c8
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x88
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40edd0
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x50], 0x61fa
mov dword [esp + 0x56], 0
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40ee8f
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 + 0x50]
mov edx, 0x2f
sub edx, eax
add eax, 0xca408ed0
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x50
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40ee50
push ebx
push edi
call fcn.00402730
add esp, 8
mov esi, dword [esp + 0x20]
test esi, esi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43c558]
mov ecx, esi
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x40eec0
mov dword [esp + 0x24], eax
xor ebx, ebx
cmp edi, edx
jbe 0x40ef07
cmp byte [edx], 0
je 0x40ef07
xor ebx, ebx
mov esi, dword [esp + 0x20]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040ce00
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x40ef07
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40eee0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40ef15
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
jae 0x40fade
mov ebx, dword [esp + 0x40]
cmp esi, edi
jae 0x40fade
mov ebx, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40fade
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x40fada
add esi, eax
cmp esi, edi
mov eax, dword [esp + 0x24]
jb 0x40ef60
jmp 0x40fade
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c330]
mov word [esp + 0x50], 0x99e8
lea eax, [esp + 0x52]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40f00f
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xeb
sub edx, eax
add eax, 0x71890114
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x74
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb case.default.0x40f022
push 2
push ebx
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c338]
mov word [esp + 0xe8], 0x99ed
lea eax, [esp + 0xea]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 8
ja 0x40f0aa
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0xeb
sub edx, eax
add eax, 0x4d890214
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0x74
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 9
jb 0x40f060
push 5
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c340]
mov word [esp], 0x65e0
lea eax, [esp + 1]
mov dword [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x40f142
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
mov edx, 0x8e
sub edx, eax
add eax, 0xadb08871
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xe9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb 0x40f100
push 2
lea eax, [esp + 4]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c348]
mov word [esp + 0x30], 0x658a
lea eax, [esp + 0x32]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x40f1d4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0x4e
sub edx, eax
add eax, 0x924044b1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0x29
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb case.default.0x40f1eb
push 3
lea eax, [esp + 0x34]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c350]
jmp case.0x40eeac.1
push 2
lea eax, [esp + 0x34]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3c8]
mov word [esp + 0xc8], 0x99e4
mov dword [esp + 0xce], 0
mov dword [esp + 0xca], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x40f294
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xc8]
mov edx, 0x6b
sub edx, eax
add eax, 0x8a458f94
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0xf4
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x40f250
push 3
lea eax, [esp + 0xcc]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3d0]
jmp dword [0x43c3d8]
mov eax, dword [esp + 0x14]
mov word [esi], 0
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40f2d0
xor ebx, ebx
cmp eax, edi
jae 0x40f317
cmp byte [eax], 0
je 0x40f317
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040ce00
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x40f317
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40f2f0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40f325
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jae 0x40f38b
mov esi, dword [esp + 0x40]
cmp ebx, edi
jae 0x40f38b
mov esi, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f38b
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x40f38b
add ebx, eax
cmp ebx, edi
jb 0x40f360
mov word [esi], 0
mov word [esp + 0x50], 0x11e5
mov byte [esp + 0x52], 0x9a
lea eax, [esp + 0x52]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40f3ff
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xeb
sub edx, eax
add eax, 0xc52b2a14
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x74
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40f3c0
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00402990
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
xor esi, esi
xor edi, edi
jmp dword [ecx*4 + 0x43c4e8]
lea ebx, [esp + 0x50]
mov ecx, ebx
push 2
call fcn.00409b00
push esi
push edi
push dword [esp + 0x48]
push dword [esp + 0x34]
push ebx
call fcn.00414040
add esp, 0x14
mov ecx, ebx
call fcn.0040a440
movzx eax, al
jmp dword [eax*4 + 0x43c508]
mov eax, dword [esp + 0x54]
mov byte [esp + 0x3a], 0
cmp eax, 0x3ff
ja 0x40f7b3
mov byte [esp + 0x39], 0x30
lea esi, [esp + 0x39]
jmp 0x40f842
push dword [esp + 0x20]
call fcn.00402ed0
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f4a3
mov esi, eax
test dl, dl
jne 0x40f4a9
mov ecx, esi
push ecx
call fcn.004090a0
add esp, 4
mov edi, eax
mov esi, dword [esp + 0x2c]
mov dword [eax], esi
add edi, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43c4f0]
lea eax, [esi + esi*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c4f8]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c4f8]
xor ebx, ebx
xor eax, eax
cmp ebx, esi
setb al
jmp dword [eax*4 + 0x43c500]
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00402ac0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [ebx + ebx*2]
mov edi, dword [esp + 0x14]
lea ecx, [edi + eax*4]
push edx
push dword [esp + 0x28]
push esi
call fcn.00413ad0
inc ebx
xor eax, eax
mov esi, dword [esp + 0x2c]
cmp ebx, esi
setb al
jmp dword [eax*4 + 0x43c500]
mov dword [esp + 0x14], edi
push ebx
push dword [esp + 0x24]
call fcn.00402ee0
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0xf7cd
mov byte [esp + 0x52], 0x64
lea eax, [esp + 0x52]
mov dword [eax + 8], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x40f60f
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 + 0x50]
mov edx, 0xae
sub edx, eax
add eax, 0x87180a51
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xc9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x40f5d0
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x50], 0x9b8d
mov byte [esp + 0x52], 0x24
lea eax, [esp + 0x52]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40f68f
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x7a
sub edx, eax
add eax, 0xdf51ce85
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x5d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40f650
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00402730
add esp, 8
mov esi, eax
mov dword [esp + 0x50], 0xf394a9a0
lea eax, [esp + 0x52]
mov dword [eax + 9], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x40f540
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 + 0x50]
mov edx, 0xa1
sub edx, eax
add eax, 0x8ceef35e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x40f6e0
jmp 0x40f540
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c510]
lea eax, [edi - 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
mov esi, edi
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c518]
push dword [esp + 0x14]
call fcn.004090b0
add esp, 4
jmp dword [0x43c528]
jmp dword [0x43c530]
push dword [esp + 0x28]
call fcn.004090b0
add esp, 4
jmp dword [0x43c538]
add edi, 0xfffffff4
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x43c520]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x40f7a1
push eax
call fcn.004090b0
add esp, 4
mov eax, dword [edi - 8]
test eax, eax
je 0x40f780
push eax
call fcn.004090b0
add esp, 4
jmp 0x40f780
mov dword [esp + 0x14], edi
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x3a]
cmp eax, 0x19000
jb 0x40f824
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul edi, edx, 0x64
mov eax, ecx
sub eax, edi
mov edi, eax
and edi, 0x7d
mov ebx, eax
and ebx, 2
or eax, 2
imul eax, ebx
xor ebx, 2
imul ebx, edi
movzx eax, word [ebx + eax + 0x439520]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x40f7d0
cmp edx, 9
ja 0x40f82b
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x40f83a
mov edx, ecx
cmp edx, 9
jbe 0x40f817
movzx eax, word [edx + edx + 0x439520]
mov word [esi - 2], ax
add esi, 0xfffffffe
lea ebx, [esp + 0x50]
mov edi, dword [esp + 0x14]
mov dword [esp], 0xc3d28b93
lea eax, [esp + 1]
mov word [eax + 0xb], 0
mov dword [eax + 7], 0
mov dword [eax + 3], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 0xd
ja 0x40f8d1
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx]
mov edx, 0x9e
sub edx, eax
add eax, 0xb8e7c561
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x59
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0xe
jb 0x40f880
mov dword [esp + 0xe8], 0xf1f0041b
mov dword [esp + 0xec], 0x471bf70b
mov dword [esp + 0xf0], 0x703080e
mov dword [esp + 0xf4], 0xfb4e0909
mov dword [esp + 0xf8], 0xf601b1ff
mov dword [esp + 0xfc], 0xf4b6f1fa
mov dword [esp + 0x100], 0xf6f50bf0
mov dword [esp + 0x104], 0xbff308f5
mov dword [esp + 0x108], 0xe8e1e010
mov dword [esp + 0x10c], 0x13a611e1
mov dword [esp + 0x110], 0xe31ea9e7
mov dword [esp + 0x114], 0xea1dade9
mov dword [esp + 0x118], 0x21d72722
mov dword [esp + 0x11c], 0xd8229598
mov dword [esp + 0x120], 0x9bd6d82c
mov dword [esp + 0x124], 0xd4dddc2c
mov dword [esp + 0x128], 0x308235c5
mov dword [esp + 0x12c], 0xfdc33fcd
mov word [esp + 0x130], 0xa988
lea eax, [esp + 0xea]
mov byte [eax + 0x50], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x48], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x52
ja 0x40fa39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0xf
sub edx, eax
add eax, 0xc89a00f0
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x70
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0x53
jb 0x40f9e0
lea eax, [0x44031f]
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x40fa40
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x40fa72
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xe9]
inc edx
test cl, cl
jne 0x40fa60
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40fa8b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40fa80
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40faab
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40faa0
mov byte [eax], 0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c510]
jmp dword [0x43c528]
push dword [esp + 0x40]
call fcn.004090b0
add esp, 4
jmp dword [0x43c530]
jmp dword [0x43c538]
mov eax, dword [esp + 0x24]
mov word [ebx], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40faf0
lea eax, [edi + 2]
test esi, esi
jns 0x40fb08
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
add edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], eax
cmp eax, edi
mov ecx, dword [esp + 0x24]
jae 0x40fb85
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
cmp ecx, ebx
jae 0x40fb85
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40fb85
lea eax, [esp + 0x50]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov edx, dword [esp + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x14], edx
cmp edx, edi
jae 0x40fb85
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x40fb50
mov eax, dword [esp + 0x14]
mov word [eax], 0
mov word [esp + 0x50], 0x796d
mov byte [esp + 0x52], 0xc2
lea eax, [esp + 0x52]
mov word [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40fc0f
nop
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 + 0x50]
mov edx, 0x5f
sub edx, eax
add eax, 0x9de900a0
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xa0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40fbd0
lea ebx, [esp + 0x50]
push ebx
push dword [ebp + 8]
call fcn.00402990
add esp, 8
xor ecx, ecx
mov dword [esp + 0x28], eax
test eax, eax
setne cl
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
jmp dword [ecx*4 + 0x43c560]
mov ecx, ebx
push 3
call fcn.00409b00
push dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
push esi
push ebx
call fcn.00416a40
add esp, 0x14
mov ecx, ebx
call fcn.0040a440
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c590]
mov edx, edi
lea esi, [edi - 4]
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c598]
push esi
call fcn.004090b0
add esp, 4
mov esi, dword [esp + 0x40]
jmp dword [0x43c5a8]
jmp dword [0x43c5b0]
add edi, 0xfffffff4
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x43c5a0]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x40fcb0
push eax
call fcn.004090b0
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x40fcb0
push dword [esp + 0x28]
call fcn.00402ed0
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40fd04
mov esi, eax
test dl, dl
jne 0x40fd0a
mov ecx, esi
push ecx
call fcn.004090a0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x20], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c568]
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c570]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c570]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x43c578]
lea ebx, [esp + 0x50]
mov word [edx], 0
mov ecx, dword [esp + 0x24]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x43c578]
mov dword [esp + 0x24], ecx
push ecx
push dword [esp + 0x2c]
call fcn.00402ee0
add esp, 8
mov esi, eax
mov word [esp + 0x50], 0xdfc9
mov byte [esp + 0x52], 0x72
mov dword [esp + 0x57], 0
mov dword [esp + 0x53], 0
jmp dword [0x43c584]
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xa
ja 0x40fe5c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xf1
sub edx, eax
add eax, 0xb44fa40e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x9e
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x40fe20
push ebx
push esi
call fcn.00402730
add esp, 8
mov word [esp + 0x50], 0x93a9
mov byte [esp + 0x52], 0xf2
lea eax, [esp + 0x52]
mov word [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40fedc
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x81
sub edx, eax
add eax, 0xa0c5507e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x8e
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40fea0
push ebx
push esi
call fcn.00402730
add esp, 8
mov word [esp + 0xe8], 0xadb9
mov byte [esp + 0xea], 0x20
lea eax, [esp + 0xea]
mov byte [eax + 0xd], 0
mov dword [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja case.0x40fc3a.9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x24
sub edx, eax
add eax, 0x8bc89ddb
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 3
mov ecx, dword [esp]
mov byte [esp + ecx + 0xe8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40ff30
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xa
ja 0x40ffbc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xf1
sub edx, eax
add eax, 0xb44fa40e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x9e
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x40ff80
push ebx
push esi
call fcn.00402730
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0x93a9
mov byte [esp + 0x52], 0xf2
lea eax, [esp + 0x52]
mov word [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x41003c
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x81
sub edx, eax
add eax, 0xa0c5507e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x8e
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x410000
push ebx
push esi
call fcn.00402730
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0xe8], 0xadb9
mov byte [esp + 0xea], 0x20
lea eax, [esp + 0xea]
mov byte [eax + 0xd], 0
mov dword [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4100cf
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x24
sub edx, eax
add eax, 0x8bc89ddb
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 3
mov ecx, dword [esp]
mov byte [esp + ecx + 0xe8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410090
jmp dword [0x43c58c]
lea eax, [esp + 0xe8]
push eax
push esi
call fcn.00402730
add esp, 8
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x20]
mov dword [edx + ecx*4], 0
mov dword [edx + ecx*4 + 4], edi
lea esi, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esp + 0x14]
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x410110
lea eax, [edi + 2]
test ebx, ebx
jns 0x410128
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov edx, eax
mov dword [esi], eax
mov eax, dword [esp + 0x14]
lea esi, [eax + ebx]
dec esi
mov dword [esp + 0x50], 0
cmp esi, eax
jbe 0x40fdb0
add edi, edx
cmp edx, edi
lea ebx, [esp + 0x50]
jae 0x40fdb4
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x40fdb4
push ebx
push esi
push eax
mov ebx, eax
mov dword [esp + 0x20], edx
call fcn.0040ce00
mov edx, dword [esp + 0x20]
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x40fdb0
add ebx, eax
cmp ebx, esi
mov eax, ebx
lea ebx, [esp + 0x50]
jb 0x410160
jmp 0x40fdb4
jmp dword [0x43c5a8]
push esi
call fcn.004090b0
add esp, 4
jmp dword [0x43c5b0]
push dword [esp + 0x4c]
call fcn.004090b0
add esp, 4
mov ecx, ebx
call fcn.00409b40
jmp case.0x40eeac.1
mov word [esp + 0xc8], 0x7266
mov byte [esp + 0xca], 0xc2
lea eax, [esp + 0xcb]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 7
ja 0x41025a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xc8]
mov edx, 0x9f
sub edx, eax
add eax, 0x866c9860
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0x60
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x410210
push 3
lea eax, [esp + 0xcc]
push eax
push edi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c358]
mov word [esp + 0x50], 0x4136
lea eax, [esp + 0x52]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4102ef
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x34
sub edx, eax
add eax, 0x4f6f0cb
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x73
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4102b0
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x50], 0x3999
lea eax, [esp + 0x52]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41036f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xf8
sub edx, eax
add eax, 0x8d86d807
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xcf
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410330
push ebx
push edi
call fcn.00402990
add esp, 8
mov esi, eax
mov word [esp + 0x50], 0x65e0
lea eax, [esp + 0x52]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4103ef
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 + 0x50]
mov edx, 0xee
sub edx, eax
add eax, 0xa96b2911
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x89
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4103b0
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x50], 0x65ca
lea eax, [esp + 0x52]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x41046f
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 + 0x50]
mov edx, 0xee
sub edx, eax
add eax, 0xbd6b2811
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x89
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410430
push ebx
push edi
call fcn.00402860
add esp, 8
mov word [esp + 0x50], 0x1a26
mov byte [esp + 0x52], 0xf2
lea eax, [esp + 0x52]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x14a], ax
fldcw word [esp + 0x14a]
fistp dword [esp + 0x164]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x40], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41052f
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 + 0x50]
mov edx, 0xc1
sub edx, eax
add eax, 0xa0670f3e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x4e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x4104f0
mov dword [esp + 0x14c], esi
push ebx
push edi
call fcn.00402860
add esp, 8
mov word [esp + 0x50], 0x716c
mov byte [esp + 0x52], 4
lea eax, [esp + 0x52]
mov byte [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
fnstcw word [esp + 0xe4]
movzx eax, word [esp + 0xe4]
or eax, 0xc00
mov word [esp + 0x148], ax
fldcw word [esp + 0x148]
fistp dword [esp + 0x160]
fldcw word [esp + 0xe4]
mov eax, dword [esp + 0x160]
mov dword [esp + 0x4c], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4105ef
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x7e
sub edx, eax
add eax, 0x9a4b9681
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x79
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4105b0
push ebx
push edi
call fcn.00402ac0
add esp, 8
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x410610
xor edi, edi
cmp eax, esi
jae 0x410657
cmp byte [eax], 0
je 0x410657
xor edi, edi
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040ce00
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x410657
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x410630
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x410665
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x2c]
jae 0x4106d9
mov ebx, dword [esp + 0x44]
cmp ecx, esi
jae 0x4106d9
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x24], edi
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4106d9
lea eax, [esp + 0x50]
push eax
push esi
push ecx
mov edi, ecx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4106d5
add edi, eax
cmp edi, esi
mov ecx, edi
mov edi, dword [esp + 0x24]
jb 0x4106a0
jmp 0x4106d9
mov edi, dword [esp + 0x24]
mov word [ebx], 0
mov eax, esp
push eax
push 0
push 0
push edi
mov ebx, dword [esp + 0x54]
push ebx
push 0
call dword [0x441328]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x410702
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x30], ecx
push ecx
push edi
push ebx
push 0
call dword [0x441328]
jmp dword [0x43c360]
push ebx
call fcn.004090b0
add esp, 4
mov ecx, dword [esp + 0x20]
mov eax, ecx
jmp 0x4109c8
mov ecx, dword [esp + 0x20]
mov esi, ecx
jmp 0x4109c0
inc edi
push esi
call fcn.00402ed0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43c368]
push edi
push esi
call fcn.00402eb0
add esp, 8
push eax
call fcn.00402840
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x20], eax
jmp dword [ecx*4 + 0x43c378]
mov dword [esp + 0x44], edi
mov ecx, eax
jmp dword [0x43c380]
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x4107c0
mov esi, edi
sub esi, dword [esp + 0x20]
mov eax, esi
inc eax
jns 0x4107da
mov eax, 0xffffffff
jmp 0x4107e1
lea eax, [esi*2 + 2]
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0xe8], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x410860
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x20], edi
jae 0x410860
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x410860
lea eax, [esp + 0xe8]
push eax
push edi
push ebx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x410860
add ebx, eax
cmp ebx, edi
jb 0x410820
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0x48], 0
setg al
mov word [esi], 0
push 0
push eax
push dword [esp + 0x48]
push dword [esp + 0x58]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x44]
lea eax, [esp + 0x6c]
push eax
call fcn.00418ee0
add esp, 0x20
mov eax, dword [esp + 0x20]
mov ecx, eax
jmp case.0x40f1eb.12
xor eax, eax
cmp dword [esp + 0x48], 0
setg al
mov word [ebx], 0
push 0
push eax
push dword [esp + 0x48]
push dword [esp + 0x58]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x44]
lea ebx, [esp + 0x6c]
push ebx
call fcn.00418ee0
add esp, 0x20
mov eax, dword [esp + 0x20]
mov ecx, eax
jmp dword [0x43c38c]
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne case.0x40f1eb.12
mov esi, edi
sub esi, eax
mov eax, esi
inc eax
jns 0x4108f7
mov eax, 0xffffffff
jmp 0x4108fe
lea eax, [esi*2 + 2]
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0xe8], 0
lea ecx, [eax + esi*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x4108a0
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x20], edi
jae 0x4108a0
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
nop
nop
nop
cmp byte [esi], 0
je 0x4108a0
lea eax, [esp + 0xe8]
push eax
push edi
push esi
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4108a0
add esi, eax
cmp esi, edi
jb 0x410940
jmp 0x4108a0
jmp dword [0x43c370]
push dword [esp + 0x2c]
call fcn.004090b0
add esp, 4
jmp dword [0x43c398]
jmp dword [0x43c398]
lea eax, [esi + 1]
cmp byte [esi], 0
je 0x4109cc
mov esi, eax
jmp 0x4109c0
xor edi, edi
cmp esi, ecx
jbe 0x410a07
cmp byte [ecx], 0
je 0x410a07
xor edi, edi
mov ebx, dword [esp + 0x20]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040ce00
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x410a07
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4109e0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x410a15
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x20]
jae 0x410a7b
mov edi, dword [esp + 0x2c]
cmp ebx, esi
jae 0x410a7b
mov edi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x410a7b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x410a7b
add ebx, eax
cmp ebx, esi
jb 0x410a50
mov word [edi], 0
lea ebx, [esp + 0x50]
mov ecx, ebx
push 1
call fcn.00409b00
xor edi, edi
mov esi, dword [esp + 0x14c]
jmp 0x410771
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c3e8]
mov word [esp + 0x50], 0xa13f
lea eax, [esp + 0x52]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410b0f
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xe4
sub edx, eax
add eax, 0x8149011b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x43
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410ad0
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x50], 0x1186
lea eax, [esp + 0x52]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x410b8f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x7c
sub edx, eax
add eax, 0x1a433c83
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x410b50
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x48], eax
mov word [esp + 0x50], 0x65f5
lea eax, [esp + 0x52]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410c0f
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 + 0x50]
mov edx, 0x8e
sub edx, eax
add eax, 0x863c8c71
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xe9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410bd0
push ebx
push edi
call fcn.00402990
add esp, 8
mov esi, eax
mov word [esp + 0x50], 0x79ec
lea eax, [esp + 0x52]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410c8f
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0x90
sub edx, eax
add eax, 0xa2d50c6f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xf7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410c50
push ebx
push edi
call fcn.00402730
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x50], 0x65ca
lea eax, [esp + 0x52]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410d0f
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 + 0x50]
mov edx, 0xee
sub edx, eax
add eax, 0xc53a3f11
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x89
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410cd0
push ebx
push edi
call fcn.00402860
add esp, 8
mov word [esp + 0x50], 0x8276
mov byte [esp + 0x52], 0xa
mov dword [esp + 0x57], 0
mov dword [esp + 0x53], 0
fnstcw word [esp + 0xe2]
movzx eax, word [esp + 0xe2]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xe2]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x40], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410dbf
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, 0xfd
sub edx, eax
add eax, 0x88839802
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xf2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410d80
push ebx
push edi
call fcn.00402860
add esp, 8
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x410de0
mov dword [esp + 0x2c], esi
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x144], ax
fldcw word [esp + 0x144]
fistp dword [esp + 0x158]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x4c], eax
lea eax, [edi + 2]
test ebx, ebx
jns 0x410e38
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x50], 0
add edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
cmp eax, edi
mov ecx, dword [esp + 0x28]
jae 0x410ea8
lea esi, [ecx + ebx]
dec esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp ecx, esi
jae 0x410ea8
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp byte [ecx], 0
je 0x410ea8
lea eax, [esp + 0x50]
push eax
push esi
push ecx
mov ebx, ecx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov edx, dword [esp + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x14], edx
cmp edx, edi
jae 0x410ea8
add ebx, eax
cmp ebx, esi
mov ecx, ebx
jb 0x410e73
mov eax, dword [esp + 0x14]
mov word [eax], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea edi, [esp + 0xe8]
mov ecx, edi
mov esi, dword [esp + 0x20]
push esi
call fcn.00432140
jmp dword [0x43c3f0]
push esi
call fcn.004090b0
add esp, 4
lea ebx, [esp + 0x50]
jmp dword [0x43c3fc]
lea ebx, [esp + 0x50]
jmp dword [0x43c3fc]
mov ecx, ebx
call fcn.00409b40
jmp dword [0x43c544]
mov eax, dword [case.0x40eeac.1]
nop
jmp eax
mov word [esp + 0xb8], 0x7266
mov byte [esp + 0xba], 0xc2
lea eax, [esp + 0xbb]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x4117b4
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb8]
mov edx, 0x9f
sub edx, eax
add eax, 0xaf29fb60
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0x60
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x411770
push 3
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00402db0
add esp, 0xc
jmp dword [0x43c3e0]
mov word [esp + 0xb8], 0x7266
mov byte [esp + 0xba], 0xc2
lea eax, [esp + 0xbb]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x411854
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb8]
mov edx, 0x9f
sub edx, eax
add eax, 0xaf29fb60
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0x60
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x411810
push 3
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00402db0
add esp, 0xc
jmp case.0x40f2ae.2
mov ecx, dword [case.0x40e1f2.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov al, 1
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
mov edx, dword [esi + 0x10c]
lea eax, [edx + 2]
mov dword [esi + 0x154], eax
mov eax, dword [esi + 0x94]
add eax, 2
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0x108]
add eax, 2
mov dword [esi + 0x130], eax
mov eax, 1
mov ecx, dword [esi + 0x104]
sub eax, ecx
mov dword [esi + 0x150], eax
lea eax, [ecx + 2]
mov dword [esi + 0x13c], eax
lea eax, [ecx - 2]
mov dword [esi + 0x14c], eax
lea eax, [edx + 0x32]
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0x94]
add eax, 4
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0x100]
add eax, 0x12
mov dword [esi + 0x148], eax
mov eax, dword [esi + 0x124]
add eax, 3
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x128]
add eax, 3
mov dword [esi + 0x140], eax
mov dword [esi + 0x34], edi
jmp 0x411a13
inc edx
mov ebx, edx
push edi
call fcn.00402ed0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
mov dword [esi + 0x10], ebx
jmp dword [ecx*4 + 0x43c5c0]
mov edx, ebx
lea ebx, [esi + 0x172]
jmp dword [0x43c5cc]
push edx
push edi
call fcn.00402ee0
add esp, 8
mov word [esi + 0x170], 0x6de1
mov word [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [esi + 0x50], 0
mov ecx, dword [esi + 0x50]
cmp ecx, 0xb
ja 0x411ac5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x50]
movzx edx, byte [esi + edx + 0x170]
mov edi, 0xed
sub edi, ecx
add ecx, 0xe668fc12
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x98], edi
mov ecx, dword [esi + 0x98]
add cl, 0x82
mov edx, dword [esi + 0x50]
mov byte [esi + edx + 0x170], cl
inc dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
cmp ecx, 0xc
jb 0x411a80
push 2
lea ecx, [esi + 0x170]
push ecx
push eax
call fcn.00402db0
add esp, 0xc
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
lea ebx, [esi + 0x172]
jmp case.0x40fdc7.22
push 2
lea eax, [esi + 0x170]
push eax
push dword [esi + 0x14]
call fcn.00402db0
add esp, 0xc
mov edx, dword [esi + 0x10]
jmp dword [0x43c5d0]
push edx
push edi
call fcn.00402ee0
add esp, 8
mov dword [esi + 0x14], eax
mov word [esi + 0x170], 0x6de1
mov word [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x411af0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x170]
mov edx, 0xed
sub edx, eax
add eax, 0xe668fc12
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x82
mov ecx, dword [esi]
mov byte [esi + ecx + 0x170], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x411b50
jmp 0x411af0
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c5d8]
mov word [esi + 0x98], 0xedf8
mov byte [esi + 0x9a], 0x10
lea eax, [esi + 0x9c]
mov byte [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x411c18
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0xac
sub edx, eax
add eax, 0xf279e853
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0xbb
mov ecx, dword [esi]
mov byte [esi + ecx + 0x98], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x411be0
push 3
lea eax, [esi + 0x98]
push eax
push dword [esi + 0x14]
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x43c5e0]
mov word [esi + 0x50], 0xcd71
lea eax, [esi + 0x52]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x411ca2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x50]
mov edx, 0x9d
sub edx, eax
add eax, 0xf76b5762
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x52
mov ecx, dword [esi]
mov byte [esi + ecx + 0x50], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x411c70
push 3
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x14]
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov edx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x43c5e8]
mov word [esi + 0x170], 0xa129
mov dword [ebx + 7], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0xc
ja 0x411d33
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [esi + ecx + 0x170]
mov edx, 0xc4
sub edx, eax
add eax, 0xb5d1543b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0x98]
add al, 0x63
mov ecx, dword [esi + 0x50]
mov byte [esi + ecx + 0x170], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0xd
jb 0x411cf0
mov ebx, dword [esi + 0x14]
jmp dword [0x43c5f4]
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x15c]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xd472a769
push dword [0x441320]
call fcn.00435170
add esp, 8
push dword [esi + 0x118]
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 8]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c758]
mov eax, dword [esi + 0x118]
mov eax, dword [eax]
mov dword [esi + 0x98], 0x82858487
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xb
ja 0x411e6f
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x98]
mov edi, 0xbe
sub edi, ecx
add ecx, 0x66745741
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x50], edi
mov ecx, dword [esi + 0x50]
add cl, 0x39
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x98], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xc
jb 0x411e30
mov ecx, dword [0x44132c]
test ecx, ecx
je case.0x4133bf.52
mov edx, dword [esi + 0x98]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x411ea0
inc edi
cmp ecx, edi
jne 0x411e90
jmp case.0x4133bf.52
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x411ec2
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
jmp dword [ecx*4 + 0x43c760]
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
jmp dword [ecx*4 + 0x43c760]
mov dword [esi + 4], ebx
mov eax, dword [esi + 0x11c]
mov eax, dword [eax]
mov dword [esi + 0x98], 0x82858487
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xb
ja 0x411f6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x98]
mov edi, 0xbe
sub edi, ecx
add ecx, 0x66745741
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x50], edi
mov ecx, dword [esi + 0x50]
add cl, 0x39
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x98], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xc
jb 0x411f30
mov ecx, dword [0x44132c]
test ecx, ecx
je 0x411fba
mov edx, dword [esi + 0x98]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x411fa0
inc edi
cmp ecx, edi
jne 0x411f90
jmp 0x411fba
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x411fba
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
mov eax, dword [case.0x4133bf.44]
mov ebx, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c728]
mov eax, dword [esi + 0x164]
jmp dword [eax*4 + 0x43c730]
mov edi, dword [esi + 0x160]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xd472a769
push dword [0x441320]
call fcn.00435170
add esp, 8
push dword [esi + 0x11c]
push edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 8]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c738]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x43c760]
xor ecx, 1
mov ebx, ecx
mov ecx, dword [esi + 0x38]
xor ecx, 2
xor eax, eax
or ecx, ebx
sete al
mov dword [esi + 8], 0
xor ebx, ebx
jmp dword [eax*4 + 0x43c700]
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx]
xor edi, edi
test al, al
je 0x412101
lea ecx, [edx + 1]
xor edi, edi
nop
nop
nop
shr al, 7
movzx eax, al
add edi, eax
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4120f0
mov ebx, edx
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412111
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov ecx, dword [esi + 0x110]
mov dword [esi + 0x98], 0
lea edx, [eax + edi*2]
mov dword [esi + 0x14], eax
mov dword [esi + 4], eax
mov dword [esi + 8], edx
cmp eax, edx
jae 0x412188
mov eax, dword [esi + 4]
mov dword [esi + 0x14], eax
test ecx, ecx
jle 0x412188
mov edi, ebx
add ecx, ebx
mov eax, dword [esi + 4]
mov dword [esi + 0x14], eax
nop
nop
cmp byte [edi], 0
je 0x412188
lea eax, [esi + 0x98]
push eax
push ecx
push edi
mov ebx, ecx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esi + 0x98]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 8]
jae 0x412188
add edi, eax
cmp edi, ebx
mov ecx, ebx
jb 0x412150
mov eax, dword [esi + 0x14]
mov word [eax], 0
mov ecx, dword [esi + 0x110]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x4121a7
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esi + 8], eax
mov edx, dword [esi + 0x10c]
mov dword [edx], 0xf3618d1c
mov dword [edx + 4], 0xf753f16b
mov dword [edx + 8], 0xfb6df562
mov dword [edx + 0xc], 0xff5bf950
mov dword [edx + 0x10], 0xe34efd50
mov dword [edx + 0x14], 0xe78be180
mov dword [edx + 0x18], 0xeb72e541
mov dword [edx + 0x1c], 0xef49e94d
mov dword [edx + 0x20], 0xd374ed8c
mov dword [edx + 0x24], 0xd746d149
mov dword [edx + 0x28], 0xdb4dd575
mov dword [edx + 0x2c], 0xdfbed94f
mov word [edx + 0x30], 0xdddc
mov eax, dword [esi + 0x158]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0x3a
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 4]
ja 0x412281
nop
nop
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [edx + ecx]
mov edx, 0xc1
sub edx, eax
add eax, 0xbd238f3e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x10c]
mov eax, dword [esi + 0x98]
add al, 0x4e
mov ecx, dword [esi + 0x50]
mov byte [edx + ecx], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0x3b
jb 0x412240
movzx ecx, word [edx]
mov eax, dword [esi + 8]
test cx, cx
je 0x4122b1
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 8]
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 0x4122a0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4122e1
mov edx, ebx
add edx, 2
nop
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 0x4122d0
mov word [eax], 0
xor ebx, ebx
mov edx, dword [esi + 0x10]
jmp dword [0x43c708]
push dword [esi + 4]
call fcn.004090b0
mov edx, dword [esi + 0x10]
add esp, 4
xor ebx, ebx
xor eax, eax
mov ecx, dword [esi + 0x38]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x43c710]
push 0x9f7704b7
push dword [0x441320]
call fcn.00435170
add esp, 8
push 0
push 0
push dword [esi + 0x3c]
push 0x41ad40
push 0
push 0
call eax
mov edx, dword [esi + 0x10]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c750]
mov dword [esi + 4], ebx
mov ecx, dword [esi + 0x120]
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], 0xb8797400
mov dword [esi + 0x98], 0x82858487
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xb
ja 0x4123cf
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x98]
mov edi, 0xbe
sub edi, ecx
add ecx, 0x66745741
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x50], edi
mov ecx, dword [esi + 0x50]
add cl, 0x39
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x98], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xc
jb 0x412390
mov ecx, dword [0x44132c]
test ecx, ecx
je 0x412426
mov edx, dword [esi + 0x98]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x39c83604
je 0x412400
inc edi
cmp ecx, edi
jne 0x4123f0
jmp 0x412426
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x412426
push dword [esi + 0x120]
push 0
push eax
push 3
push dword [0x441334]
push ecx
mov edi, eax
call fcn.00433920
mov eax, edi
add esp, 0x18
mov dword [esi + 0x98], 0x82858487
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xb
ja 0x41249f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x98]
mov edi, 0xbe
sub edi, ecx
add ecx, 0x66745741
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x50], edi
mov ecx, dword [esi + 0x50]
add cl, 0x39
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x98], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xc
jb 0x412460
mov ecx, dword [0x44132c]
test ecx, ecx
je case.default.0x412508
mov edx, dword [esi + 0x98]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x4124d0
inc edi
cmp ecx, edi
jne 0x4124c0
jmp case.default.0x412508
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x4124e3
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
jmp case.0x4133bf.38
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
jmp dword [ecx*4 + 0x43c760]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c760]
push eax
call fcn.00432090
mov edx, dword [esi + 0x10]
add esp, 4
mov eax, dword [case.0x412508.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x43c778]
push ebx
call fcn.004090b0
mov edx, dword [esi + 0x10]
add esp, 4
xor eax, eax
cmp dword [esi + 8], 0
sete al
jmp dword [eax*4 + 0x43c780]
xor eax, eax
cmp dword [esi + 8], 0
sete al
jmp dword [eax*4 + 0x43c780]
push dword [esi + 8]
call fcn.004090b0
mov edx, dword [esi + 0x10]
add esp, 4
jmp case.0x411cbd.6
mov dword [esi + 0x98], 0xa2262126
lea eax, [esi + 0x9c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xa
ja 0x4125fd
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0x84
sub edx, eax
add eax, 0xdbf66e7b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xa3
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xb
jb 0x4125c0
mov eax, dword [esi + 0x98]
push dword [eax + 0x14]
call fcn.00409820
add esp, 4
call fcn.00409840
and eax, 0xf
or eax, 0x10
mov dword [esi + 8], eax
xor edi, edi
mov eax, dword [case.0x412e84.6]
lea ebx, [esi + 0x50]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp edi, dword [esi + 8]
setb al
jmp dword [eax*4 + 0x43c640]
call fcn.00409840
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx], ax
add ebx, 2
inc edi
mov eax, dword [case.0x412e84.6]
jmp case.0x412e84.4
mov word [ebx], 0
mov dword [esi + 0x18], 0xebc095ed
mov dword [esi + 0x1c], 0xefbbe9b1
mov dword [esi + 0x20], 0xe397edbe
mov dword [esi + 0x24], 0xe7e0e14e
mov word [esi + 0x28], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
ja 0x4126e8
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0xc2
sub edx, eax
add eax, 0xe57d023d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0x98]
add al, 0x55
mov ecx, dword [esi]
mov byte [esi + ecx + 0x18], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x4126b0
movzx eax, word [esi + 0x18]
lea ebx, [esi + 0x98]
test ax, ax
je 0x412711
lea ecx, [esi + 0x1a]
lea ebx, [esi + 0x98]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412700
mov word [ebx], 0
movzx eax, word [esi + 0x50]
test ax, ax
je 0x412741
lea ecx, [esi + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412730
mov word [ebx], 0
lea eax, [esi + 0x98]
sub ebx, eax
sar ebx, 1
lea ecx, [esi + 0x12c]
push ecx
push 0
push 0
push ebx
push eax
push 0
call dword [0x441328]
mov edi, dword [esi + 0x12c]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x41277b
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov ecx, eax
lea eax, [esi + 0x12c]
push eax
push edi
mov dword [esi + 4], ecx
push ecx
push ebx
lea eax, [esi + 0x98]
push eax
push 0
call dword [0x441328]
xor eax, eax
mov ecx, dword [esi + 0x38]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c648]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esi + 0xfc]
lea ebx, [esi + 0x1a]
jmp dword [eax*4 + 0x43c660]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x43c668]
jmp dword [0x43c674]
mov edi, dword [esi + 0xfc]
lea ebx, [esi + 0x1a]
jmp dword [0x43c654]
mov dword [esi + 0x18], 0x6306614e
mov dword [esi + 0x1c], 0x670a6508
mov word [esi + 0x20], 0x6968
mov word [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0xf
ja 0x412855
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x8f
sub edx, eax
add eax, 0x311a9c70
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0xf0
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x10
jb 0x412820
mov eax, dword [esi + 4]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412860
movzx ecx, word [esi + 0x18]
test cx, cx
je 0x412893
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esi + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x412880
add eax, edx
mov word [eax], 0
jmp case.0x40fdc7.57
mov word [ecx], 0x2c
mov eax, dword [esi + 0x44]
lea ebx, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4128b0
lea eax, [ecx + 2]
mov dword [esi + 0x14], eax
mov dword [esi + 0x98], 0
cmp dword [esi + 0x48], 2
jl 0x41291c
cmp dword [esi + 0x44], ebx
jae 0x41291c
mov eax, dword [esi + 0x48]
lea eax, [ecx + eax*2]
mov dword [esi + 0x38], eax
mov edi, dword [esi + 0x44]
cmp byte [edi], 0
je 0x41291c
lea eax, [esi + 0x98]
push eax
push ebx
push edi
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esi + 0x98]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x38]
jae 0x412919
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x10]
jb 0x4128e0
jmp 0x41291c
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov word [eax], 0
xor ebx, ebx
mov dword [esi + 0x38], 0
mov edi, dword [esi + 0x34]
mov eax, 1
jmp dword [eax*4 + 0x43c6f8]
mov word [ecx], 0x2c
mov ecx, dword [esi + 0x40]
lea ebx, [ecx - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412950
lea eax, [edi + 4]
mov dword [esi + 0x14], eax
mov dword [esi + 0x98], 0
cmp dword [esi + 0x38], 2
jl 0x4129c0
cmp ecx, ebx
jae 0x4129c0
mov eax, dword [esi + 0x38]
lea eax, [edi + eax*2]
add eax, 2
mov dword [esi + 0x38], eax
nop
cmp byte [ecx], 0
je 0x4129c0
lea eax, [esi + 0x98]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esi + 0x98]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x38]
jae 0x4129bd
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x10]
mov ecx, edi
jb 0x412980
jmp 0x4129c0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov word [ecx], 0
mov eax, dword [esi + 0xf8]
jmp dword [eax*4 + 0x43c6e8]
lea eax, [esi + 0x170]
push eax
push ebx
call fcn.00402730
add esp, 8
mov edi, eax
mov word [esi + 0x98], 0xe1f6
mov byte [esi + 0x9a], 0x6a
lea eax, [esi + 0x9c]
mov byte [eax + 0xb], 0
mov dword [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xf
ja 0x412a6d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0x8d
sub edx, eax
add eax, 0x11ba9e72
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xe2
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0x10
jb 0x412a30
lea eax, [esi + 0x98]
push eax
push ebx
call fcn.00402860
fstp st(0)
add esp, 8
mov word [esi + 0x98], 0x1179
lea eax, [esi + 0x9c]
mov word [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 7
ja 0x412aed
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0xfc
sub edx, eax
add eax, 0x96c9e003
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xeb
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 8
jb 0x412ab0
lea eax, [esi + 0x98]
push eax
push ebx
call fcn.00402860
fstp st(0)
add esp, 8
mov edx, edi
dec edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x412b10
mov dword [esi + 0x98], 0
lea eax, [esi + 0x170]
cmp edx, edi
jae 0x412b83
xor ebx, ebx
nop
cmp byte [edx], 0
je 0x412b78
lea eax, [esi + 0x98]
push eax
push edi
push edx
mov dword [esi + 8], edx
call fcn.0040ce00
add esp, 0xc
movzx edx, word [esi + 0x98]
lea ecx, [ebx + 2]
mov word [esi + ebx + 0x170], dx
mov edx, dword [esi + 8]
cmp ebx, 0x7fb
ja 0x412b6e
add edx, eax
mov ebx, ecx
cmp edx, edi
jb 0x412b30
lea eax, [esi + ecx]
add eax, 0x170
jmp 0x412b80
lea eax, [esi + ebx]
add eax, 0x170
mov ebx, dword [esi + 0x14]
mov word [eax], 0
lea eax, [esi + 0x170]
push eax
push ebx
call fcn.00402730
add esp, 8
mov edi, eax
mov word [esi + 0x98], 0xe1f6
mov byte [esi + 0x9a], 0x6a
lea eax, [esi + 0x9c]
mov byte [eax + 0xb], 0
mov dword [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xf
ja 0x412c1d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0x8d
sub edx, eax
add eax, 0x11ba9e72
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xe2
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0x10
jb 0x412be0
lea eax, [esi + 0x98]
push eax
push ebx
call fcn.00402860
add esp, 8
mov word [esi + 0x98], 0x1179
lea eax, [esi + 0x9c]
mov word [eax + 2], 0
mov dword [eax - 2], 0
fnstcw word [esi + 0x4e]
movzx eax, word [esi + 0x4e]
or eax, 0xc00
mov word [esi + 0x116], ax
fldcw word [esi + 0x116]
fistp dword [esi + 0x16c]
fldcw word [esi + 0x4e]
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x38], eax
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 7
ja 0x412ccd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0xfc
sub edx, eax
add eax, 0x96c9e003
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xeb
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 8
jb 0x412c90
lea eax, [esi + 0x98]
push eax
push ebx
call fcn.00402860
add esp, 8
mov edx, edi
dec edi
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x412ce0
fnstcw word [esi + 0x4c]
movzx eax, word [esi + 0x4c]
or eax, 0xc00
mov word [esi + 0x114], ax
fldcw word [esi + 0x114]
fistp dword [esi + 0x168]
fldcw word [esi + 0x4c]
mov ecx, dword [esi + 0x168]
mov dword [esi + 0x98], 0
lea eax, [esi + 0x170]
cmp edx, edi
mov dword [esi + 4], ecx
jae 0x412d92
xor ebx, ebx
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x412d87
lea eax, [esi + 0x98]
push eax
push edi
push edx
mov dword [esi + 8], edx
call fcn.0040ce00
add esp, 0xc
movzx edx, word [esi + 0x98]
lea ecx, [ebx + 2]
mov word [esi + ebx + 0x170], dx
mov edx, dword [esi + 8]
cmp ebx, 0x7fb
ja 0x412d6e
add edx, eax
mov ebx, ecx
cmp edx, edi
jb 0x412d30
lea eax, [esi + ecx]
add eax, 0x170
mov word [eax], 0
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 0x14]
jmp dword [0x43c5fc]
lea eax, [esi + ebx]
add eax, 0x170
mov ebx, dword [esi + 0x14]
mov word [eax], 0
mov edi, dword [esi + 0x34]
jmp dword [0x43c5fc]
lea eax, [esi + 0x110]
push eax
lea eax, [esi + 0x3c]
push eax
lea eax, [esi + 0x170]
push eax
call fcn.0040b900
add esp, 0xc
movzx eax, al
mov edx, dword [esi + 0x10]
jmp dword [eax*4 + 0x43c600]
mov eax, dword [case.0x40fdc7.25]
nop
nop
nop
nop
jmp eax
jmp dword [0x43c610]
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
mov dword [esi + 0x164], eax
jmp dword [eax*4 + 0x43c618]
mov word [esi + 0x98], 0xd526
mov dword [esi + 0x9e], 0
mov dword [esi + 0x9a], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 9
ja 0x412e6d
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0x62
sub edx, eax
add eax, 0x1694079d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0xb5
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xa
jb 0x412e30
lea eax, [esi + 0x98]
push eax
push ebx
call fcn.00402730
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c620]
mov ecx, eax
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x412e90
mov dword [esi + 8], 0
cmp ebx, eax
mov dword [esi + 0x44], eax
jbe 0x412eed
cmp byte [eax], 0
je 0x412eed
mov dword [esi + 8], 0
mov edi, dword [esi + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x98], 0
lea eax, [esi + 0x98]
push eax
push ebx
push edi
call fcn.0040ce00
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 8]
cmp ecx, ebx
jae 0x412eed
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412ec0
mov ecx, dword [esi + 8]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x412efe
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov edx, eax
mov dword [esi + 0x98], 0
mov eax, dword [esi + 8]
lea eax, [edx + eax*2]
mov dword [esi + 4], edx
mov dword [esi + 0x48], eax
cmp edx, eax
mov edi, dword [esi + 0x44]
mov dword [esi + 0x40], edx
jae 0x412f7c
mov dword [esi + 4], edx
cmp edi, ebx
jae 0x412f7c
mov dword [esi + 4], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412f7c
lea eax, [esi + 0x98]
push eax
push ebx
push edi
call fcn.0040ce00
add esp, 0xc
movzx ecx, word [esi + 0x98]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0x48]
jae 0x412f79
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x40]
jb 0x412f40
jmp 0x412f7c
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 4]
mov word [eax], 0
lea eax, [esi + 0x98]
push eax
push 0
push 0
push dword [esi + 8]
push edx
push 0
call dword [0x441328]
mov edi, dword [esi + 0x98]
lea eax, [edi + edi]
test edi, edi
jns 0x412fad
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov ebx, eax
lea eax, [esi + 0x98]
push eax
push edi
push ebx
push dword [esi + 8]
mov edi, dword [esi + 0x40]
push edi
push 0
call dword [0x441328]
jmp dword [0x43c628]
push edi
call fcn.004090b0
add esp, 4
mov edi, dword [esi + 0xfc]
jmp 0x413753
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
jmp dword [eax*4 + 0x43c6f8]
xor eax, eax
mov ecx, dword [esi + 0x38]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x43c710]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x43c718]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c720]
sub edx, edi
inc edx
mov dword [esi + 0x48], edx
jmp 0x413550
mov eax, ecx
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, 1
mov dword [esi + 8], 0
jmp dword [ecx*4 + 0x43c6f0]
mov ebx, dword [esi + 4]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x413060
mov ecx, eax
not ecx
and ecx, ebx
mov edx, ebx
not edx
and edx, eax
sub edx, ecx
lea eax, [edx + 0x3c]
cmp edx, 0xffffffc3
mov edi, dword [esi + 0x94]
jge 0x41308c
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esi + 8], eax
mov dword [edi], 0x53505134
mov eax, dword [esi + 0x138]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0xf
ja 0x41310b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [edi + ecx]
mov edx, 0x8c
sub edx, eax
add eax, 0x44ff8b73
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0x98]
add al, 0xdb
mov ecx, dword [esi + 0x50]
mov byte [edi + ecx], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0x10
jb 0x4130d0
mov edx, dword [esi + 0x108]
mov dword [edx], 0x6bf96dfc
mov dword [edx + 4], 0x67fb69e3
mov dword [edx + 8], 0x63ed65ea
mov dword [edx + 0xc], 0x5fc361f8
mov dword [edx + 0x10], 0x5bce5dc8
mov dword [edx + 0x14], 0x57035938
mov dword [edx + 0x18], 0x53da55c9
mov dword [edx + 0x1c], 0x4fd151cd
mov dword [edx + 0x20], 0x4bd44d2c
mov dword [edx + 0x24], 0x47d649c1
mov dword [edx + 0x28], 0x43cd45e5
mov dword [edx + 0x2c], 0xbfde41cf
mov dword [edx + 0x30], 0xbb20bde9
mov dword [edx + 0x34], 0xb7e8b9d8
mov word [edx + 0x38], 0xb5b4
mov dword [edx + 0x3e], 0
mov dword [edx + 0x3a], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0x41
ja 0x4131e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [edx + ecx]
mov edx, 0x2d
sub edx, eax
add eax, 0xcf264fd2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x98]
add al, 0x42
mov ecx, dword [esi + 0x50]
mov byte [edx + ecx], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0x42
jb 0x4131a0
movzx ecx, word [edx]
mov eax, dword [esi + 8]
test cx, cx
mov edi, dword [esi + 0x34]
je 0x413211
mov edx, dword [esi + 0x130]
mov eax, dword [esi + 8]
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 0x413200
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x413241
lea edx, [ebx + 2]
nop
nop
nop
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 0x413230
mov word [eax], 0
mov ecx, dword [esi + 0x94]
movzx ecx, word [ecx]
test cx, cx
je 0x413271
mov edx, dword [esi + 0x134]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413260
mov word [eax], 0
mov edx, dword [esi + 0x10]
mov eax, 1
jmp dword [eax*4 + 0x43c6f8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
inc edx
cmp byte [ecx], 0
jne case.default.0x4132b8
sub ecx, dword [esi + 0x40]
mov edx, ecx
xor edx, 1
and ecx, 1
lea ecx, [edx + ecx*2]
mov dword [esi + 0x38], ecx
xor edx, edx
test edi, edi
setne dl
mov ecx, edi
mov dword [esi + 0xf8], edx
jmp dword [edx*4 + 0x43c6a0]
push 0
push dword [esi + 0x110]
push dword [esi + 0x3c]
push dword [edi]
call fcn.00436300
add esp, 0x10
mov ebx, eax
mov edi, dword [edi]
mov dword [esi + 0x98], 0x82858487
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xb
ja 0x41334d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x98]
mov edx, 0xbe
sub edx, eax
add eax, 0x66745741
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x50]
add al, 0x39
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x98], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xc
jb 0x413310
mov ecx, dword [0x44132c]
test ecx, ecx
je case.0x40fdc7.67
mov dword [esi + 8], edi
mov edx, dword [esi + 0x98]
xor edi, edi
mov eax, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xa3c1f363
je 0x413380
inc edi
cmp ecx, edi
jne 0x413370
jmp case.0x40fdc7.67
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.0x40fdc7.67
push dword [esi + 8]
push 1
push dword [0x441334]
push eax
call fcn.00433920
add esp, 0x10
mov edi, dword [esi + 0x34]
push dword [esi + 0x3c]
call fcn.00432090
add esp, 4
mov dword [esi + 0x3c], 0
not ebx
shr ebx, 0x1f
mov dword [esi + 8], 0
xor eax, eax
jmp dword [ebx*4 + 0x43c688]
xor eax, eax
mov ecx, dword [esi + 0x38]
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x43c690]
mov edi, dword [esi + 0x128]
mov word [edi], 0xf7cc
mov byte [edi + 2], 0x64
mov eax, dword [esi + 0x140]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0xb
ja 0x41344b
nop
nop
nop
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [edi + ecx]
mov edx, 0xee
sub edx, eax
add eax, 0x26640311
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0x98]
add al, 0x89
mov ecx, dword [esi + 0x50]
mov byte [edi + ecx], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0xc
jb 0x413410
push edi
push dword [esi + 0x14]
call fcn.00402730
add esp, 8
mov dword [esi + 0x40], eax
mov edi, dword [esi + 0x124]
mov word [edi], 0xfb89
mov byte [edi + 2], 0x64
mov eax, dword [esi + 0x144]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 0xc
mov ebx, dword [esi + 4]
ja 0x4134db
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [edi + ecx]
mov edx, 0x4e
sub edx, eax
add eax, 0x9ff95cb1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0x98]
add al, 0x29
mov ecx, dword [esi + 0x50]
mov byte [edi + ecx], al
inc dword [esi + 0x50]
mov eax, dword [esi + 0x50]
cmp eax, 0xd
jb 0x4134a0
push edi
push dword [esi + 0x14]
call fcn.00402730
add esp, 8
mov edi, eax
xor eax, eax
nop
nop
nop
nop
nop
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne case.default.0x413525
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
add eax, ebx
mov edx, 1
sub edx, eax
mov eax, ebx
not eax
and eax, ecx
and edx, ebx
sub eax, edx
sar eax, 1
xor ecx, ecx
mov edx, dword [esi + 0x40]
test edx, edx
setne cl
mov dword [esi + 0x14], ecx
mov dword [esi + 0x44], edi
jmp dword [ecx*4 + 0x43c698]
mov dword [esi + 0x38], 0
xor edx, edx
test edi, edi
setne dl
mov ecx, edi
mov dword [esi + 0xf8], edx
jmp dword [edx*4 + 0x43c6a0]
mov dword [esi + 0x48], 0
mov edx, dword [esi + 0x100]
mov dword [edx], 0xb327b122
mov dword [edx + 4], 0xb712b52a
mov dword [edx + 8], 0xab36a934
mov dword [edx + 0xc], 0xaf7cad7f
lea ecx, [edx + 0x10]
mov dword [esi + 8], ecx
mov word [edx + 0x10], 0xa1a0
mov ecx, dword [esi + 0x148]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 0x50], 0
mov ecx, dword [esi + 0x50]
cmp ecx, 0x17
ja 0x4135dd
nop
nop
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x50]
movzx edi, byte [edx + edi]
mov ebx, 0x37
sub ebx, ecx
add ecx, 0xedc8
xor ebx, ecx
and ebx, edi
xor ebx, ecx
mov dword [esi + 0x98], ebx
mov ecx, dword [esi + 0x98]
add cl, 0x88
mov edi, dword [esi + 0x50]
mov byte [edx + edi], cl
inc dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
cmp ecx, 0x18
jb 0x4135a0
mov ebx, dword [esi + 0x104]
mov edi, ebx
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
mov ecx, 1
mov edx, dword [esi + 8]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x413610
mov edx, dword [esi + 0x14c]
add edx, ecx
mov edi, dword [esi + 0x150]
sub edi, ecx
mov ecx, ebx
not ecx
and ecx, edx
and edi, ebx
sub ecx, edi
sar ecx, 1
add eax, dword [esi + 0x38]
add eax, dword [esi + 0x48]
add eax, ecx
inc eax
mov ecx, eax
and ecx, 1
xor eax, 1
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x413656
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x104]
movzx eax, word [eax]
mov dword [esi + 8], edi
test ax, ax
je 0x413691
mov ecx, dword [esi + 0x13c]
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413680
mov dword [edi], 0x220020
add edi, 4
mov ecx, dword [esi + 4]
movzx eax, word [ecx]
test ax, ax
mov edx, dword [esi + 0x10]
je 0x4136c1
add ecx, 2
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4136b0
lea ecx, [edi + 2]
mov word [edi], 0x22
jmp dword [0x43c6b8]
push dword [esi + 4]
mov ebx, ecx
call fcn.004090b0
mov ecx, ebx
mov edx, dword [esi + 0x10]
add esp, 4
mov eax, dword [case.0x4133bf.13]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x43c6dc]
mov eax, dword [esi + 0x14]
jmp dword [eax*4 + 0x43c6e0]
mov eax, dword [esi + 0xf8]
jmp dword [eax*4 + 0x43c6e8]
xor ebx, ebx
mov dword [esi + 0x38], 0
mov edi, dword [esi + 0x34]
mov eax, 1
jmp dword [eax*4 + 0x43c6f8]
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne case.0x4133bf.7
mov ecx, edi
jmp dword [0x43c6b4]
mov ebx, dword [esi + 4]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edi
mov dword [esi + 4], ebx
push ebx
call fcn.00435a80
add esp, 0x1c
mov ebx, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43c680]
mov dword [esi + 0x18], 0x73026d5e
mov dword [esi + 0x1c], 0x77477107
mov word [esi + 0x20], 0x7574
mov word [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x13
ja 0x4137f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x91
sub edx, eax
add eax, 0xa59f4a6e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0xfe
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x14
jb 0x4137c0
mov eax, dword [esi + 4]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x413800
movzx ecx, word [esi + 0x18]
test cx, cx
je 0x413833
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esi + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x413820
add eax, edx
mov word [eax], 0
jmp dword [0x43c67c]
mov dword [esi + 0x18], 0x73026d5e
mov dword [esi + 0x1c], 0x77477107
mov word [esi + 0x20], 0x7574
mov word [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x13
ja 0x4138b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x91
sub edx, eax
add eax, 0xa59f4a6e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0xfe
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x14
jb 0x413880
mov eax, dword [esi + 4]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4138c0
movzx ecx, word [esi + 0x18]
test cx, cx
je 0x4138f3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esi + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x4138e0
add eax, edx
mov word [eax], 0
jmp case.0x40fdc7.64
mov dword [esi + 0x18], 0x4bcf5584
mov dword [esi + 0x1c], 0x4fd349c2
mov word [esi + 0x20], 0x4d4e
mov dword [ebx + 0xf], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x14
ja 0x413975
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x72
sub edx, eax
add eax, 0xbab7d68d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0x25
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x15
jb 0x413940
mov eax, dword [esi + 4]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x413980
movzx ecx, word [esi + 0x18]
test cx, cx
je 0x4139b3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esi + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x4139a0
add eax, edx
mov word [eax], 0
mov dword [esi + 0x18], 0x4bcf5584
mov dword [esi + 0x1c], 0x4fd349c2
mov word [esi + 0x20], 0x4d4e
mov dword [ebx + 0xf], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x14
ja 0x413a25
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x72
sub edx, eax
add eax, 0xbab7d68d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0x25
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x15
jb 0x4139f0
mov eax, dword [esi + 4]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x413a30
movzx ecx, word [esi + 0x18]
test cx, cx
je 0x413a63
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esi + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x413a50
add eax, edx
mov word [eax], 0
jmp dword [0x43c658]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret