Function at 0x410699
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xce8
mov ecx, dword [0x440bf4]
mov dword [esp + 0xc8], 0x3377a36c
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40ee7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx esi, byte [esp + edx + 0xc8]
lea edi, [eax - 0x37c897d7]
lea edx, [eax + esi]
add edx, 0xc8376829
add eax, 0x29
or eax, edi
and edi, esi
and eax, esi
add eax, edi
mov esi, edx
not esi
and esi, eax
not eax
and eax, edx
sub eax, esi
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x258]
add al, 0xe1
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xc8], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40ee20
mov edx, dword [str.MeHdy4__p20new]
mov dword [esp + 0x258], 0xde96faf9
mov dword [esp + 0x25c], 0xeef5e8e6
mov dword [esp + 0x260], 0xe6f5ec9e
mov dword [esp + 0x264], 0xceddded1
mov dword [esp + 0x268], 0xa514d4d7
mov dword [esp + 0x26c], 0xebe3d7d9
mov dword [esp + 0x270], 0xd71c1116
mov dword [esp + 0x274], 0x3ffbc1c5
mov word [esp + 0x278], 0
mov dword [esp + 0x1c8], 0
mov eax, dword [esp + 0x1c8]
cmp eax, 0x21
ja 0x40ef52
nop
nop
nop
mov eax, dword [esp + 0x1c8]
mov esi, dword [esp + 0x1c8]
movzx esi, byte [esp + esi + 0x258]
lea edi, [eax + 0x60e81d4]
add eax, 0xd4
and eax, esi
or edi, esi
sub edi, eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
add al, 0x34
mov esi, dword [esp + 0x1c8]
mov byte [esp + esi + 0x258], al
inc dword [esp + 0x1c8]
mov eax, dword [esp + 0x1c8]
cmp eax, 0x22
jb 0x40ef00
movzx ebx, byte [esp + 0x258]
lea eax, [esp + 0xc64]
test bl, bl
je 0x40ef7b
lea esi, [esp + 0x259]
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40ef70
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40ef9b
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 0x40ef90
mov byte [eax], 0
movzx edx, byte [esp + 0xc8]
test dl, dl
je 0x40efcb
lea esi, [esp + 0xc9]
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 0x40efc0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40efeb
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 0x40efe0
mov byte [eax], 0
lea ecx, [esp + 0xc64]
mov dword [esp + 0x258], 0xdbadd99b
mov dword [esp + 0x25c], 0xe79ae592
mov dword [esp + 0x260], 0xe394e18d
mov dword [esp + 0x264], 0xefdbed90
mov dword [esp + 0x268], 0xeb93e9b4
mov dword [esp + 0x26c], 0xf79bf584
mov dword [esp + 0x270], 0xf3d2f1ca
mov dword [esp + 0x274], 0xff8efd9d
mov dword [esp + 0x278], 0xfb8ef988
mov dword [esp + 0x27c], 0x765056d
mov dword [esp + 0x280], 0x37e0161
mov dword [esp + 0x284], 0xf790d65
mov dword [esp + 0x288], 0xb3d097e
mov dword [esp + 0x28c], 0x1723156c
mov dword [esp + 0x290], 0x136d116f
mov dword [esp + 0x294], 0x1f2b1d63
mov dword [esp + 0x298], 0x1b6d1976
mov dword [esp + 0x29c], 0x27532556
mov dword [esp + 0x2a0], 0x235f2115
mov dword [esp + 0x2a4], 0x2f5a2d5e
mov dword [esp + 0x2a8], 0x2b5c2945
mov dword [esp + 0x2ac], 0x37413557
mov dword [esp + 0x2b0], 0x335f315c
mov dword [esp + 0x2b4], 0x3f2b3d50
mov dword [esp + 0x2b8], 0x3b3a3932
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x67
ja 0x40f17a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x258]
lea edi, [edx + 0x5c]
add edx, esi
and edi, esi
add edi, edi
sub edx, edi
add edx, 0xefa3b5c
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xc8]
add dl, 0x7c
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x258], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x68
jb 0x40f130
sub eax, ecx
mov dword [esp + 0xc8], 0x33ab3567
mov dword [esp + 0xcc], 0x2fa731a2
mov word [esp + 0xd0], 0x2d2e
mov dword [esp + 0xd2], 0
mov word [esp + 0xd6], 0
mov dword [esp + 0x1c8], 0
mov edx, dword [esp + 0x1c8]
cmp edx, 0xf
ja 0x40f23b
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x1c8]
movzx esi, byte [esp + esi + 0xc8]
mov edi, edx
and edi, 0xe1d9d529
xor edx, 0xe1d9d529
lea edx, [edx + edi*2]
lea edi, [edx + esi]
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
mov esi, edx
or esi, 0xe0
and edx, 0xe0
add edx, esi
inc dl
mov esi, dword [esp + 0x1c8]
mov byte [esp + esi + 0xc8], dl
inc dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
cmp edx, 0x10
jb 0x40f1d0
lea edx, [esp + 0xc0]
lea edi, [esp + 0xb8]
lea ebx, [esp + 0x258]
lea esi, [esp + 0xc8]
push edx
push edi
push eax
push ecx
push ebx
push esi
push 0x446544
call fcn.0040c180
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44180c]
xor edi, edi
xor ebx, ebx
test edi, edi
sete bl
jmp dword [ebx*4 + 0x441824]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
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
add eax, edi
shr eax, 2
movzx edx, byte [ecx + ebx - 1]
cmp edx, 0x3d
je 0x40f2ca
cmp edx, 0x2e
jne 0x40f2cb
dec eax
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x40f2da
cmp ecx, 0x2e
jne 0x40f2db
dec eax
push eax
call fcn.00408de0
add esp, 4
mov edi, eax
jmp dword [0x441818]
push edi
push ebx
call fcn.00433d10
add esp, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
push ebx
call fcn.00433d10
add esp, 8
jmp dword [0x44181c]
push dword [esp + 0xb8]
call fcn.00437380
add esp, 4
xor ebx, ebx
test edi, edi
sete bl
jmp dword [ebx*4 + 0x441824]
push edi
call fcn.00401ee0
add esp, 4
jmp dword [ebx*4 + 0x44182c]
push edi
mov edi, eax
call fcn.00408df0
mov eax, edi
add esp, 4
mov dword [esp + 0x10], eax
push eax
call fcn.00402890
add esp, 4
mov ebx, eax
mov word [esp + 0x258], 0x969c
mov byte [esp + 0x25a], 4
mov dword [esp + 0x25b], 0
mov dword [esp + 0x25f], 0
mov dword [esp + 0x263], 0
mov byte [esp + 0x267], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40f40f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
movzx edx, byte [esp + eax + 0x258]
lea eax, [ecx + edx]
add eax, 0x4feb4b55
add ecx, 0x4feb4b55
mov edi, edx
not edi
or edi, ecx
add edi, edx
and ecx, edx
add ecx, edi
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xc8], ecx
mov eax, dword [esp + 0xc8]
add al, 0xad
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x258], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40f3b0
lea eax, [esp + 0x258]
push eax
push ebx
call fcn.00402900
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x441834]
call fcn.00432a70
movzx eax, al
jmp dword [eax*4 + 0x44183c]
mov dword [esp + 0xac], ebx
jmp dword [0x441848]
mov word [esp + 0x258], 0x898d
mov byte [esp + 0x25a], 0x72
mov dword [esp + 0x25b], 0
mov dword [esp + 0x25f], 0
mov dword [esp + 0x263], 0
mov byte [esp + 0x267], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40f4ff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
movzx edi, byte [esp + eax + 0x258]
lea eax, [edx + 0x37211fae]
lea ecx, [edx + edi]
add ecx, 0x37211fae
add edx, 0xae
and edx, edi
and eax, edi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x3e
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x258], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40f4a0
lea edi, [esp + 0x258]
push edi
mov ebx, dword [esp + 0xb0]
push ebx
call fcn.00402900
add esp, 8
mov word [esp + 0x258], 0x889b
mov byte [esp + 0x25a], 0x72
mov dword [esp + 0x25b], 0
mov dword [esp + 0x25f], 0
mov dword [esp + 0x263], 0
mov byte [esp + 0x267], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40f5b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x258]
lea edx, [eax + 0x1ecfa2ae]
add eax, 0xae
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x3e
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x258], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40f570
push edi
push ebx
call fcn.00402900
add esp, 8
push ebx
call fcn.004104f0
add esp, 4
push dword [esp + 0x10]
call fcn.00402af0
add esp, 4
lea edi, [esp + 0x1c8]
mov ecx, edi
push 1
call fcn.00409530
push edi
call fcn.0041e7f0
add esp, 4
mov ecx, edi
call fcn.00409ec0
lea edi, [esp + 0xbf8]
mov ecx, edi
push 3
call fcn.00409530
push edi
call fcn.0041f430
add esp, 4
mov ecx, edi
call fcn.00409ec0
lea edi, [esp + 0xb90]
mov ecx, edi
push 1
call fcn.00409530
push edi
call fcn.0041f880
add esp, 4
mov ecx, edi
call fcn.00409ec0
lea edi, [esp + 0xb28]
mov ecx, edi
push 1
call fcn.00409530
push edi
call fcn.00421b50
add esp, 4
push edi
call fcn.004226d0
add esp, 4
push edi
call fcn.00422b50
add esp, 4
mov ecx, edi
call fcn.00409ec0
lea edi, [esp + 0xac0]
mov ecx, edi
push 1
call fcn.00409530
push edi
call fcn.00424b90
add esp, 4
mov ecx, edi
call fcn.00409ec0
lea edi, [esp + 0xa58]
mov ecx, edi
push 1
call fcn.00409530
push edi
call fcn.00426ba0
add esp, 4
push edi
call fcn.0042e2d0
add esp, 4
jmp case.0x40f427.5
push edi
push ebx
call fcn.00402900
add esp, 8
mov edi, eax
push ebx
call fcn.004104f0
add esp, 4
push dword [esp + 0x10]
call fcn.00402af0
add esp, 4
lea ebx, [esp + 0x1c8]
mov ecx, ebx
push 1
call fcn.00409530
push ebx
call fcn.0041e7f0
add esp, 4
mov ecx, ebx
call fcn.00409ec0
lea ebx, [esp + 0xbf8]
mov ecx, ebx
push 3
call fcn.00409530
push ebx
call fcn.0041f430
add esp, 4
mov ecx, ebx
call fcn.00409ec0
lea ebx, [esp + 0xb90]
mov ecx, ebx
push 1
call fcn.00409530
push ebx
call fcn.0041f880
add esp, 4
mov ecx, ebx
call fcn.00409ec0
lea ebx, [esp + 0xb28]
mov ecx, ebx
push 1
call fcn.00409530
push ebx
call fcn.00421b50
add esp, 4
push ebx
call fcn.004226d0
add esp, 4
push ebx
call fcn.00422b50
add esp, 4
mov ecx, ebx
call fcn.00409ec0
lea ebx, [esp + 0xac0]
mov ecx, ebx
push 1
call fcn.00409530
push ebx
call fcn.00424b90
add esp, 4
mov ecx, ebx
call fcn.00409ec0
lea ebx, [esp + 0xa58]
mov ecx, ebx
push 1
call fcn.00409530
push ebx
call fcn.00426ba0
add esp, 4
push ebx
call fcn.0042e2d0
add esp, 4
jmp dword [0x44184c]
mov word [esp + 0x258], 0x898d
mov byte [esp + 0x25a], 0x72
mov dword [esp + 0x25b], 0
mov dword [esp + 0x25f], 0
mov dword [esp + 0x263], 0
mov byte [esp + 0x267], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40f86f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
movzx edi, byte [esp + eax + 0x258]
lea eax, [edx + 0x37211fae]
lea ecx, [edx + edi]
add ecx, 0x37211fae
add edx, 0xae
and edx, edi
and eax, edi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x3e
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x258], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40f810
lea edi, [esp + 0x258]
push edi
mov ebx, dword [esp + 0xb0]
push ebx
call fcn.00402900
add esp, 8
mov dword [esp + 0xb0], eax
mov word [esp + 0x258], 0x889b
mov byte [esp + 0x25a], 0x72
mov dword [esp + 0x25b], 0
mov dword [esp + 0x25f], 0
mov dword [esp + 0x263], 0
mov byte [esp + 0x267], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40f6c0
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x258]
lea edx, [eax + 0x1ecfa2ae]
add eax, 0xae
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x3e
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x258], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40f8e0
jmp 0x40f6c0
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x441854]
push ebx
call fcn.0042e4c0
add esp, 4
lea ecx, [esp + 0xa58]
call fcn.00409ec0
lea eax, [esp + 0x237]
push eax
call fcn.004336a0
add esp, 4
mov dword [esp], 0x747d6dac
mov dword [esp + 4], 0x80426e
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 7
ja 0x40f9ed
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx]
lea edx, [eax - 0x3cf880bf]
and edx, ecx
add eax, ecx
add eax, 0xc3077f41
add edx, edx
sub eax, edx
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x258]
mov ecx, eax
xor ecx, 0x38
and eax, 0x38
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 8
jb 0x40f990
mov eax, dword [0x440bf4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], 0x93d7fbb8
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x33], 0
mov dword [esp + 0xc8], 0
mov ecx, dword [esp + 0xc8]
cmp ecx, 0xe
ja 0x40fa81
nop
nop
nop
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc8]
movzx edx, byte [esp + edx + 0x28]
lea edi, [ecx - 0x3537faed]
add ecx, 0x13
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0x258], edi
mov ecx, dword [esp + 0x258]
add cl, 0x7b
mov edx, dword [esp + 0xc8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
cmp ecx, 0xf
jb 0x40fa30
mov ecx, dword [str.MeHdy4__p20new]
mov dword [esp + 0x258], 0xd4ecfcf5
mov dword [esp + 0x25c], 0xfee0f2fb
mov dword [esp + 0x260], 0xe6e5f6e9
mov dword [esp + 0x264], 0x9cbccf9
mov dword [esp + 0x268], 0xe4d2ced8
mov dword [esp + 0x26c], 0x11c1b1e
mov dword [esp + 0x270], 0xecc4c2da
mov byte [esp + 0x274], 0x2a
mov dword [esp + 0x275], 0
mov dword [esp + 0x278], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x23
ja 0x40fb5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x18]
movzx edi, byte [esp + edi + 0x258]
lea ebx, [edx + 0xd3]
and ebx, edi
mov eax, 0x1d0a172c
sub eax, edx
or eax, edi
not eax
add eax, edi
sub eax, ebx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x3b
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x258], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x24
jb 0x40fb10
movzx edx, byte [esp + 0x258]
test dl, dl
je 0x40fb8b
lea esi, [esp + 0xc8]
lea edi, [esp + 0x259]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40fb80
mov byte [esi], 0
movzx edx, byte [ecx]
test dl, dl
lea ebx, [esp + 0x258]
je 0x40fbbd
inc ecx
mov eax, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40fbb0
jmp 0x40fbc1
mov eax, dword [esp + 0x10]
mov byte [esi], 0
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40fbeb
lea edx, [esp + 0x29]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40fbe0
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40fc0b
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 0x40fc00
mov byte [esi], 0
movzx eax, byte [esp]
test al, al
je 0x40fc2b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40fc20
mov byte [esi], 0
movzx eax, byte [esp + 0x237]
test al, al
je 0x40fc5b
lea ecx, [esp + 0x238]
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 0x40fc50
mov byte [esi], 0
lea eax, [esp + 0xc8]
mov dword [esp + 0x258], 0x6bf96dd3
mov dword [esp + 0x25c], 0x67ea69fa
mov dword [esp + 0x260], 0x63f065f9
mov dword [esp + 0x264], 0x5f8b61ec
mov dword [esp + 0x268], 0x5bd35df0
mov dword [esp + 0x26c], 0x57cb59c8
mov dword [esp + 0x270], 0x53b25592
mov dword [esp + 0x274], 0x4fde51f1
mov dword [esp + 0x278], 0x4bde4ddc
mov dword [esp + 0x27c], 0x47d949d1
mov dword [esp + 0x280], 0x43ce45e5
mov dword [esp + 0x284], 0x3fad41d9
mov dword [esp + 0x288], 0x3be93dae
mov dword [esp + 0x28c], 0x37e339b0
mov dword [esp + 0x290], 0x33b935bf
mov dword [esp + 0x294], 0x2ffb31bb
mov dword [esp + 0x298], 0x2bb92db6
mov dword [esp + 0x29c], 0x27b329a6
mov dword [esp + 0x2a0], 0x23af25f1
mov dword [esp + 0x2a4], 0x1f8a21ae
mov dword [esp + 0x2a8], 0x1b881d81
mov dword [esp + 0x2ac], 0x17851987
mov dword [esp + 0x2b0], 0x138f1588
mov dword [esp + 0x2b4], 0xffb118c
mov dword [esp + 0x2b8], 0xb0a0dfa
mov word [esp + 0x2c0], 0
mov dword [esp + 0x2bc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x69
ja 0x40fded
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 0x258]
lea edx, [ecx + edi]
add edx, 0xdff3ee92
add ecx, 0xdff3ee92
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 2
mov edx, dword [esp]
mov byte [esp + edx + 0x258], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x6a
jb 0x40fda0
sub esi, eax
mov dword [esp + 0x28], 0x4bb35587
mov dword [esp + 0x2c], 0x4fd749da
mov word [esp + 0x30], 0x4d4e
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0xf
ja 0x40fe75
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x28]
mov edi, ecx
and edi, 0x1b6c930d
xor ecx, 0x1b6c930d
lea ecx, [ecx + edi*2]
lea edi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0xa5
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x10
jb 0x40fe30
lea ecx, [esp + 0xbc]
lea edx, [esp + 0xb4]
lea edi, [esp + 0x28]
push ecx
push edx
push esi
push eax
push ebx
push edi
push 0x446544
call fcn.0040c180
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44185c]
xor edi, edi
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x441864]
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0xb4]
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
add eax, edi
shr eax, 2
movzx edx, byte [ecx + esi - 1]
cmp edx, 0x3d
je 0x40feee
cmp edx, 0x2e
jne 0x40feef
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
je 0x40fefe
cmp ecx, 0x2e
jne 0x40feff
dec eax
push eax
call fcn.00408de0
add esp, 4
mov edi, eax
push eax
push esi
call fcn.00433d10
add esp, 8
push dword [esp + 0xb4]
call fcn.00437380
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x441864]
push edi
call fcn.00401ee0
add esp, 4
mov ebx, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44186c]
push edi
call fcn.00408df0
add esp, 4
push ebx
call case.0x411537.32
add esp, 4
push ebx
call fcn.00402af0
add esp, 4
lea ebx, [esp + 0x258]
mov dword [esp + 0x258], 0x3b919b92
mov dword [esp + 0x260], 0
mov dword [esp + 0x25c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40ffeb
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x258]
lea edx, [eax + ecx]
add edx, 0x7bf9387
add eax, 0x87
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x4f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x258], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40ffa0
push ebx
push dword [esp + 0xb0]
call fcn.00402900
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x441874]
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x44187c]
lea ecx, [esp + 0x258]
push 1
call fcn.00409530
mov eax, 0xffffffff
cmp byte [eax + 0x44684d], 0
lea eax, [eax + 1]
jne 0x410030
mov dword [esp + 0x28], 0x36c4c0e0
mov dword [esp + 0x2c], 0x4f4afbc3
mov word [esp + 0x30], 0xd548
mov dword [esp + 0x36], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x11
ja 0x4100bf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx - 0x2bff8ec6]
and esi, edx
add ecx, edx
add ecx, 0xd400713a
add esi, esi
sub ecx, esi
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x6a
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x12
jb 0x410080
lea esi, [esp + 0x258]
mov ecx, esi
push eax
push 0x44684c
lea eax, [esp + 0x30]
push eax
call fcn.00409730
mov ecx, esi
call fcn.00409ec0
mov ecx, esi
call fcn.00409570
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x44187c]
push 0
call fcn.0043a580
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441884]
mov dword [esp + 0x28], 0x73df6dcb
mov dword [esp + 0x2c], 0x770471d4
mov dword [esp + 0x30], 0x7bc275d1
mov dword [esp + 0x34], 0x7f1e79dd
mov dword [esp + 0x38], 0x43f57d1a
mov dword [esp + 0x3c], 0x47e741f4
mov dword [esp + 0x40], 0x4bfe45f2
mov dword [esp + 0x44], 0x4f3d4928
mov dword [esp + 0x48], 0x53fb4de1
mov dword [esp + 0x4c], 0x573651e2
mov dword [esp + 0x50], 0x5bf755f3
mov dword [esp + 0x54], 0x5f2c59fc
mov dword [esp + 0x58], 0xa31a5df9
mov dword [esp + 0x5c], 0xa7c6a105
mov dword [esp + 0x60], 0xabd9a5c2
mov dword [esp + 0x64], 0xafcea90f
mov dword [esp + 0x68], 0xb31bad18
mov dword [esp + 0x6c], 0xb713b11d
mov dword [esp + 0x70], 0xbb0fb507
mov dword [esp + 0x74], 0xbfdeb90c
mov dword [esp + 0x78], 0x8336bdcf
mov dword [esp + 0x7c], 0x87f181e0
mov dword [esp + 0x80], 0x8bf985e4
mov dword [esp + 0x84], 0x8f3d893a
mov dword [esp + 0x88], 0x93248d2a
mov dword [esp + 0x8c], 0x97379135
mov dword [esp + 0x90], 0x9bfa953b
mov dword [esp + 0x94], 0x9ffe99f2
mov dword [esp + 0x98], 0xe3479d38
mov dword [esp + 0x9c], 0xe786e14c
mov dword [esp + 0xa0], 0xebeae582
mov dword [esp + 0xa4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x7f
ja 0x410283
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x54307ace]
add ecx, 0xce
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x258], esi
mov ecx, dword [esp + 0x258]
add cl, 0x5e
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x80
jb 0x410240
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x4102b1
lea ebx, [esp + 0x258]
lea edx, [esp + 0x2a]
nop
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 0x4102a0
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x4102e1
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 0x4102d0
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 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], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x44
mov dword [esp + 0x54], 1
push 0x89047569
push dword [0x44784c]
call fcn.0043a6c0
add esp, 8
lea ecx, [esp + 0x18]
lea edx, [esp + 0x258]
push ecx
lea ecx, [esp + 0x2c]
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 + 0x44188c]
mov eax, dword [esp + 0x18]
mov dword [esp], 0x22212027
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xb], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xe
ja 0x410438
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx]
lea esi, [ecx + 0xfb]
and esi, edx
mov edi, 0x9a3a7204
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xc4]
add cl, 0x23
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x4103f0
mov ecx, dword [0x447858]
test ecx, ecx
je case.0x4100f3.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x44785c]
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x410470
inc esi
cmp ecx, esi
jne 0x410450
jmp case.0x4100f3.0
push dword [esp + 0x10]
call fcn.00402af0
add esp, 4
xor eax, eax
jmp 0x4104d4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4100f3.0
push eax
push 1
push dword [0x447860]
push ecx
call fcn.00438dd0
add esp, 0x10
lea ecx, [esp + 0xa58]
call fcn.00409570
lea ecx, [esp + 0xac0]
call fcn.00409570
lea ecx, [esp + 0xb28]
call fcn.00409570
lea ecx, [esp + 0xb90]
call fcn.00409570
lea ecx, [esp + 0xbf8]
call fcn.00409570
lea ecx, [esp + 0x1c8]
call fcn.00409570
mov al, 1
mov ecx, dword [case.0x4100f3.9]
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov dword [esi + 0xf8], esp
push eax
mov dword [esi + 0x50], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 8], eax
mov esp, eax
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x30], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x118], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e4], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x110], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x108], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x100], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x98], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a8], eax
mov esp, eax
push eax
mov dword [esi + 0x1c4], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c0], eax
mov esp, eax
push eax
mov dword [esi + 0x64], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1bc], eax
mov esp, eax
push eax
mov dword [esi + 0x10c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa0], eax
mov esp, eax
push eax
mov dword [esi + 0x1d4], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b8], eax
mov esp, eax
push eax
mov dword [esi + 0x1d0], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b4], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b0], eax
mov esp, eax
push eax
mov dword [esi + 0x1ac], esp
push eax
mov dword [esi + 0xfc], esp
push eax
mov dword [esi + 0x60], esp
push eax
mov dword [esi + 0x9c], esp
push eax
mov dword [esi + 0x104], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x4c], eax
mov esp, eax
push eax
mov dword [esi + 0x1dc], esp
push eax
mov dword [esi + 0x1d8], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
push eax
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
jmp dword [esi + 0xc]
mov dword [esi + 0x78], edx
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], ebx
mov dword [esi + 0xe0], edi
mov dword [esi + 0xec], ecx
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc4], eax
mov esp, eax
push eax
mov dword [esi + 0x15c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x158], eax
mov esp, eax
push eax
mov dword [esi + 0x134], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x154], eax
mov esp, eax
push eax
mov dword [esi + 0x164], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x90], eax
mov esp, eax
push eax
mov dword [esi + 0x130], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x150], eax
mov esp, eax
push eax
mov dword [esi + 0xf4], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x14c], eax
mov esp, eax
push eax
mov dword [esi + 0xf0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x148], eax
mov esp, eax
push eax
mov dword [esi + 0x144], esp
sub esp, 0xc
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0xc0], esp
push eax
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x12c], esp
push eax
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0x128], esp
push eax
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x94], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x58], eax
mov esp, eax
push eax
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0x1c8], esp
push eax
mov dword [esi + 0xa4], esp
push eax
mov dword [esi + 0x178], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
mov dword [esi + 0x170], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x16c], eax
mov esp, eax
push eax
mov dword [esi + 0x74], esp
push eax
mov dword [esi + 0xc8], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x190], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x44], eax
mov esp, eax
push eax
mov dword [esi + 0xe8], esp
push eax
mov dword [esi + 0x188], esp
push eax
mov dword [esi + 0x1a4], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e0], eax
mov esp, eax
push eax
mov dword [esi + 0x1a0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x114], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb4], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x3c], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x80], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x40], eax
mov esp, eax
push eax
sub esp, 0x54
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd8], eax
mov esp, eax
push eax
mov dword [esi + 0x174], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x160], eax
mov esp, eax
push eax
mov dword [esi + 0x168], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1cc], eax
mov esp, eax
push eax
mov dword [esi + 0x140], esp
push eax
mov dword [esi + 0x13c], esp
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x194], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xdc], eax
mov esp, eax
push eax
mov dword [esi + 0xe4], esp
push eax
mov dword [esi + 0x264], esp
push eax
mov dword [esi + 0x19c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb0], eax
mov esp, eax
push eax
mov dword [esi + 0x198], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x138], eax
mov esp, eax
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0xf8]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov word [ecx], 0xcd73
mov dword [ecx + 2], 0
mov dword [ecx + 6], 0
mov dword [ecx + 0xa], 0
mov byte [ecx + 0xe], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0xe
ja 0x4109d6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [ecx + edi]
lea ebx, [edx + 0xe2]
add edx, edi
and ebx, edi
add ebx, ebx
sub edx, ebx
add edx, 0x2ae758e2
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
add dl, 0xd2
mov edi, dword [esi + 4]
mov byte [ecx + edi], dl
mov edx, dword [esi + 4]
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
mov dword [esi + 4], edx
mov edx, dword [esi + 4]
cmp edx, 0xf
jb 0x410990
push ecx
push eax
call fcn.004028b0
add esp, 8
mov edi, dword [esi + 0x50]
mov dword [edi], eax
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4418b4]
mov eax, dword [esi + 0x118]
add eax, 2
mov dword [esi + 0x268], eax
mov eax, dword [esi + 0x110]
add eax, 2
mov dword [esi + 0x248], eax
mov eax, dword [esi + 0x80]
lea ecx, [eax + 0xa]
mov dword [esi + 0x48], ecx
add eax, 9
mov dword [esi + 0x80], eax
xor ecx, ecx
mov eax, dword [esi + 0x34]
mov dword [esi + 8], 0
mov dword [eax], ecx
mov eax, dword [esi + 0x108]
add eax, 2
mov dword [esi + 0x240], eax
mov eax, dword [esi + 0x100]
lea eax, [eax + 2]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x98]
lea eax, [eax + 2]
mov dword [esi + 0x1f8], eax
mov eax, dword [esi + 0x1a8]
lea eax, [eax + 3]
mov dword [esi + 0x1f0], eax
mov eax, dword [esi + 0x1c0]
lea eax, [eax + 2]
mov dword [esi + 0x23c], eax
mov eax, dword [esi + 0x1bc]
lea eax, [eax + 2]
mov dword [esi + 0x238], eax
mov eax, dword [esi + 0xa0]
lea eax, [eax + 2]
mov dword [esi + 0x234], eax
mov eax, dword [esi + 0x1b8]
lea eax, [eax + 2]
mov dword [esi + 0x230], eax
mov eax, dword [esi + 0x1b4]
lea eax, [eax + 3]
mov dword [esi + 0x22c], eax
mov eax, dword [esi + 0x1b0]
lea eax, [eax + 3]
mov dword [esi + 0x228], eax
mov eax, dword [esi + 0xa8]
lea eax, [eax + 2]
mov dword [esi + 0x254], eax
mov eax, dword [esi + 0x16c]
lea eax, [eax + 2]
mov dword [esi + 0x250], eax
mov eax, dword [esi + 0x44]
lea eax, [eax + 3]
mov dword [esi + 0x224], eax
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 4]
mov dword [esi + 0x184], eax
mov eax, dword [esi + 0xd8]
lea eax, [eax + 0x4a]
mov dword [esi + 0x180], eax
mov eax, dword [esi + 0x160]
lea eax, [eax + 2]
mov dword [esi + 0x24c], eax
mov eax, dword [esi + 0xdc]
lea eax, [eax + 3]
mov dword [esi + 0x220], eax
mov eax, dword [esi + 0xb0]
lea eax, [eax + 3]
mov dword [esi + 0x260], eax
mov eax, dword [esi + 0x18c]
lea eax, [eax + 3]
mov dword [esi + 0x25c], eax
mov eax, dword [esi + 0xac]
lea eax, [eax + 3]
mov dword [esi + 0x258], eax
mov eax, dword [esi + 0xec]
lea eax, [eax + 2]
mov dword [esi + 0x244], eax
mov eax, dword [esi + 0xe0]
lea eax, [eax + 2]
mov dword [esi + 0x21c], eax
mov eax, dword [esi + 0xd4]
lea eax, [eax + 2]
mov dword [esi + 0x1fc], eax
mov eax, dword [esi + 0xd0]
lea eax, [eax + 2]
mov dword [esi + 0x1f4], eax
mov eax, dword [esi + 0x78]
lea eax, [eax + 2]
mov dword [esi + 0x1ec], eax
mov eax, dword [esi + 0xc4]
lea eax, [eax + 3]
mov dword [esi + 0x1e8], eax
mov eax, dword [esi + 0x158]
lea eax, [eax + 2]
mov dword [esi + 0x218], eax
mov eax, dword [esi + 0x154]
lea eax, [eax + 2]
mov dword [esi + 0x214], eax
mov eax, dword [esi + 0x90]
lea eax, [eax + 2]
mov dword [esi + 0x210], eax
mov eax, dword [esi + 0x150]
lea eax, [eax + 2]
mov dword [esi + 0x20c], eax
mov eax, dword [esi + 0x14c]
add eax, 2
mov dword [esi + 0x208], eax
mov eax, dword [esi + 0x148]
add eax, 3
mov dword [esi + 0x204], eax
lea eax, [ecx + 1]
mov dword [esi + 0x17c], eax
jmp dword [0x4418c0]
push dword [edi]
call fcn.00402ab0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [edi]
push ebx
call fcn.00402ab0
add esp, 4
jmp dword [0x4418c4]
xor ecx, ecx
mov edx, dword [esi + 8]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x4418cc]
push edx
push ebx
call fcn.00402ac0
add esp, 8
mov ebx, dword [esi + 0x30]
mov dword [ebx], eax
mov edi, dword [esi + 0x118]
mov word [edi], 0x4dd8
mov ecx, dword [esi + 0x268]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ecx + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xe
ja 0x410cdc
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [ecx - 0x1e708f0a]
add ecx, 0xf6
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x118]
mov ecx, dword [esi + 0x10]
add cl, 0x46
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xf
jb 0x410ca0
push 3
push edi
push eax
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x4418d4]
mov edx, dword [esi + 0x1e4]
mov word [edx], 0x810a
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x410d6d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x5bbe4beb
add eax, 0x5bbe4beb
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x1e4]
mov eax, dword [esi + 0x10]
add al, 0x93
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x410d30
push edx
push dword [ebx]
call fcn.00402860
add esp, 8
fnstcw word [esi + 0x6e]
movzx eax, word [esi + 0x6e]
or eax, 0xc00
mov word [esi + 0x122], ax
fldcw word [esi + 0x122]
fistp dword [esi + 0x27c]
fldcw word [esi + 0x6e]
mov eax, dword [esi + 0x27c]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4418dc]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4418e4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4418ec]
mov edx, dword [esi + 0xec]
mov word [edx], 0xc167
mov eax, dword [esi + 0x244]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x410e38
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x23e57320]
add eax, 0x20
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xec]
mov eax, dword [esi + 0x10]
add al, 0x20
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x410e00
push 2
push edx
push dword [ebx]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441994]
mov edx, dword [esi + 0xe0]
mov word [edx], 0xcd5c
mov eax, dword [esi + 0x21c]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x410ecd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xc3afc9e
add eax, 0xc3afc9e
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xe0]
mov eax, dword [esi + 0x10]
add al, 0xae
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x410e90
push 2
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44199c]
mov edx, dword [esi + 0xd4]
mov word [edx], 0x51e1
mov eax, dword [esi + 0x1fc]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x410f6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x7001264d]
add eax, 0xb3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xd4]
mov eax, dword [esi + 0x10]
add al, 0x1b
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x410f30
push 5
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4419a4]
mov edx, dword [esi + 0xd0]
mov word [edx], 0x8500
mov eax, dword [esi + 0x1f4]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x410ffd
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x23405541
add eax, 0x23405541
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xd0]
mov eax, dword [esi + 0x10]
add al, 0x39
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x410fc0
push 2
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
mov ecx, dword [case.0x410f81.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4419bc]
mov edx, dword [esi + 0x78]
mov word [edx], 0x55b2
mov eax, dword [esi + 0x1ec]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x4110ab
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x78]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x8d
and eax, edx
mov edx, dword [esi + 0x78]
add eax, eax
sub ecx, eax
add ecx, 0x84d68f8d
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x25
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x411060
push 3
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4419c4]
movzx eax, bl
mov ebx, dword [esi + 0x30]
jmp dword [eax*4 + 0x4419cc]
mov edi, dword [esi + 0x158]
mov word [edi], 0x55cf
mov eax, dword [esi + 0x218]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xd
ja 0x411150
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x4d]
and edx, ecx
add eax, 0x5e5194d
or eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0xe4
and eax, 0xe4
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe
jb 0x411110
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x15c]
mov dword [ecx], eax
mov edi, dword [esi + 0x154]
mov word [edi], 0xb120
mov eax, dword [esi + 0x214]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x4111e0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x83c20cc8
add eax, 0x83c20cc8
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x411190
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov ecx, dword [esi + 0x90]
mov word [ecx], 0xd94d
mov eax, dword [esi + 0x210]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 7], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x411286
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx edi, byte [ecx + eax]
lea eax, [edx + 0x169d3ba4]
lea ecx, [edx + edi]
add ecx, 0x169d3ba4
add edx, 0xa4
and edx, edi
and eax, edi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x84
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x90]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0x90]
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x411230
push ecx
push dword [ebx]
call fcn.004028b0
add esp, 8
mov ecx, dword [esi + 0x164]
mov dword [ecx], eax
mov edx, dword [esi + 0x150]
mov word [edx], 0x2da2
mov eax, dword [esi + 0x20c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xd
ja 0x4112fa
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
add eax, 0x17757b06
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd6
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe
jb 0x4112d0
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x130]
mov dword [ecx], eax
mov edi, dword [esi + 0x14c]
mov word [edi], 0x2d48
mov eax, dword [esi + 0x208]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x411377
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 0x4d7560d9
sub ecx, eax
add eax, 0x26
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0xf6
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x411340
push edi
push dword [ebx]
call fcn.00402860
add esp, 8
fnstcw word [esi + 0x6c]
movzx eax, word [esi + 0x6c]
or eax, 0xc00
mov word [esi + 0x120], ax
fldcw word [esi + 0x120]
fistp dword [esi + 0x270]
fldcw word [esi + 0x6c]
mov eax, dword [esi + 0x270]
mov ecx, dword [esi + 0xf4]
mov dword [ecx], eax
mov edi, dword [esi + 0x148]
mov word [edi], 0x10ec
mov byte [edi + 2], 0x84
mov eax, dword [esi + 0x204]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x411422
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x1e29bceb]
add eax, 0x15
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x6d
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x4113f0
push edi
push dword [ebx]
call fcn.00402860
add esp, 8
fnstcw word [esi + 0x6a]
movzx eax, word [esi + 0x6a]
or eax, 0xc00
mov word [esi + 0x11e], ax
fldcw word [esi + 0x11e]
fistp dword [esi + 0x26c]
fldcw word [esi + 0x6a]
mov eax, dword [esi + 0x26c]
mov ecx, dword [esi + 0xf0]
mov dword [ecx], eax
mov eax, dword [esi + 0x15c]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411470
mov dword [esi + 0xc], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41148e
mov ecx, 0xffffffff
push ecx
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x144]
mov dword [eax], edx
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x4114b9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4114b0
mov dword [esi + 0x10], 0
add edi, edx
cmp edi, edx
jbe 0x411504
test ebx, ebx
jle 0x411504
add ebx, ecx
mov dword [esi + 8], ebx
nop
cmp byte [ecx], 0
je 0x411504
lea eax, [esi + 0x10]
push eax
push dword [esi + 8]
push ecx
mov ebx, ecx
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411504
add ebx, eax
cmp ebx, dword [esi + 8]
mov ecx, ebx
jb 0x4114d0
mov word [edx], 0
mov eax, dword [esi + 0x144]
mov edi, dword [eax]
mov ebx, dword [esi + 0x38]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov ecx, ebx
push edi
call fcn.00437430
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4419d4]
push edi
call fcn.00408df0
add esp, 4
mov ecx, ebx
push 0x400
call fcn.004376a0
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4419dc]
mov eax, dword [esi + 0xc0]
mov dword [eax], 0
mov ecx, dword [ebx]
mov dword [esi + 0x10], 0x22212027
lea eax, [esi + 0x14]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xe
ja 0x4115dc
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x28]
movzx edx, byte [esi + eax + 0x10]
lea eax, [edi + 0xfb]
and eax, edx
mov ebx, 0x9a3a7204
sub ebx, edi
or ebx, edx
not ebx
add ebx, edx
sub ebx, eax
mov dword [esi + 4], ebx
mov eax, dword [esi + 4]
add al, 0x23
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x10], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xf
jb 0x4115a0
mov eax, dword [esi + 0x10]
mov edx, dword [0x447858]
test edx, edx
je 0x411612
xor edi, edi
mov ebx, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x412845
inc edi
cmp edx, edi
jne 0x411600
mov ebx, dword [esi + 0x38]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x4419e4]
mov edi, dword [esi + 0xc0]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.004372e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xbc]
mov dword [esi + 8], ecx
mov dword [eax], ecx
mov eax, dword [edi]
add eax, 2
mov ecx, dword [ebx]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], 0x22212027
lea ecx, [esi + 0x14]
mov dword [ecx + 7], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0xe
ja 0x4116bd
nop
nop
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [edi + 0xfb]
and ecx, edx
mov ebx, 0x9a3a7204
sub ebx, edi
or ebx, edx
not ebx
add ebx, edx
sub ebx, ecx
mov dword [esi + 4], ebx
mov ecx, dword [esi + 4]
add cl, 0x23
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0xf
jb 0x411680
mov ecx, dword [esi + 0x10]
mov ebx, dword [0x447858]
test ebx, ebx
je 0x4116f2
xor edi, edi
mov edx, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + edi*8], 0x68655b54
je 0x412d3e
inc edi
cmp ebx, edi
jne 0x4116e0
mov ebx, dword [esi + 0x38]
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x4419ec]
mov eax, dword [esi + 0x134]
mov ecx, dword [eax]
mov ebx, 0xfffffffe
xor eax, eax
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411710
mov dword [esi + 0xc], ecx
lea edi, [eax - 1]
mov ecx, dword [esi + 0x12c]
mov dword [ecx], edi
lea ecx, [ebx + 2]
test eax, eax
jns 0x411736
mov ecx, 0xffffffff
push ecx
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xb8]
mov dword [eax], edx
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x411769
mov edi, ecx
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411760
mov dword [esi + 0x10], 0
add ebx, edx
cmp ebx, edx
jbe 0x4117b4
test edi, edi
jle 0x4117b4
add edi, ecx
mov dword [esi + 8], edi
nop
cmp byte [ecx], 0
je 0x4117b4
lea eax, [esi + 0x10]
push eax
push dword [esi + 8]
push ecx
mov edi, ecx
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x4117b4
add edi, eax
cmp edi, dword [esi + 8]
mov ecx, edi
jb 0x411780
mov word [edx], 0
mov eax, dword [esi + 0xbc]
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov dword [esi + 0x24], eax
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ebx
add eax, 0xfffffffe
mov ecx, dword [case.0x411537.10]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor edx, edx
cmp eax, ebx
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x441a04]
xor edx, edx
cmp word [ecx], 0
setne dl
mov edi, eax
jmp dword [edx*4 + 0x441a0c]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4418f4]
mov edx, dword [esi + 0xa8]
mov word [edx], 0x59c8
mov eax, dword [esi + 0x254]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x41189d
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xa8]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add ecx, 0xbedb37cc
add eax, 0xbedb37cc
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov edx, dword [esi + 0xa8]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x6c
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x411850
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x178]
mov dword [ecx], eax
mov edx, dword [esi + 0x16c]
mov word [edx], 0x51ec
mov eax, dword [esi + 0x250]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x411928
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
add eax, 0x63045173
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0xda
and eax, 0x5a
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x4118f0
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x170]
mov dword [ecx], eax
mov ecx, dword [esi + 0x178]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x441a8c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a94]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411970
mov eax, ebx
sub eax, edx
mov dword [esi + 8], 0
mov dword [esi + 0x2c], eax
test eax, eax
jle 0x412326
mov dword [esi + 0x24], edx
cmp byte [edx], 0
je 0x412329
mov dword [esi + 8], 0
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push ebx
push edi
call fcn.0040ec40
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 8]
cmp ecx, ebx
jae 0x412329
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4119b0
jmp 0x412329
mov edi, dword [esi + 0x160]
mov word [edi], 0x35c6
mov eax, dword [esi + 0x24c]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x411a6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0x37714379
xor eax, 0x37714379
lea edx, [eax + edx*2]
mov eax, edx
and eax, ecx
xor edx, ecx
lea ecx, [edx + eax*2]
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xb1
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x411a20
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x174]
mov dword [ecx], eax
mov edi, dword [esi + 0x1cc]
mov word [edi], 0x9912
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x411b08
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea edi, [eax + 0x8128c14]
lea ecx, [eax + edx]
add ecx, 0x8128c14
and edi, edx
add eax, 0x14
and eax, edx
add eax, edi
mov edi, dword [esi + 0x1cc]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x73
and eax, 0x73
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x411ab0
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x168]
mov dword [ecx], eax
mov ecx, dword [esi + 0x174]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x441b5c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441b64]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411b50
mov eax, ebx
sub eax, edx
mov dword [esi + 8], 0
mov dword [esi + 0x2c], eax
test eax, eax
jle 0x4125ce
mov dword [esi + 0x24], edx
cmp byte [edx], 0
je 0x4125d1
mov dword [esi + 8], 0
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push ebx
push edi
call fcn.0040ec40
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 8]
cmp ecx, ebx
jae 0x4125d1
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411b90
jmp 0x4125d1
sete al
movzx eax, al
jmp dword [eax*4 + 0x4418fc]
mov edx, dword [esi + 0x110]
mov word [edx], 0xcd5c
mov eax, dword [esi + 0x248]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x411c3c
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0xde]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x110]
add eax, 0x310410de
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xee
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb case.default.0x411c52
push 2
push edx
push dword [ebx]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441904]
mov edx, dword [esi + 0x108]
mov word [edx], 0x816d
mov eax, dword [esi + 0x240]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x411cf2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0xec3cd43f
sub edx, eax
add eax, 0xc0
or edx, ecx
not ecx
or ecx, eax
add edx, ecx
mov eax, 0xfffffffe
sub eax, edx
mov edx, dword [esi + 0x108]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0xbf
and eax, 0x3f
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x411ca0
push 5
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44190c]
mov edx, dword [esi + 0x100]
mov word [edx], 0xd8a
mov eax, dword [esi + 0x200]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x411d94
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x234cba02]
lea edi, [eax + 2]
xor edi, edx
and edx, ecx
and edi, ecx
add eax, ecx
add eax, 0x234cba02
lea ecx, [edi + edx*2]
mov edx, dword [esi + 0x100]
sub eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xf2
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x411d50
push 2
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x441914]
mov edx, dword [esi + 0x98]
mov word [edx], 0x358a
mov eax, dword [esi + 0x1f8]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x411e31
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x98]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x59
and eax, edx
mov edx, dword [esi + 0x98]
add eax, eax
sub ecx, eax
add ecx, 0xb3f92859
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x91
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x411df0
push 3
push edx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.00402a60
add esp, 0xc
mov ecx, dword [case.0x411dae.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44192c]
movzx eax, bl
mov ebx, dword [esi + 0x30]
jmp dword [eax*4 + 0x441934]
mov edi, dword [esi + 0x1c0]
mov word [edi], 0xd9c
mov eax, dword [esi + 0x23c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x411ed7
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xf068bafe
add eax, 0xf068bafe
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xe
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x411ea0
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x1c4]
mov dword [ecx], eax
mov edi, dword [esi + 0x1bc]
mov word [edi], 0xa131
mov eax, dword [esi + 0x238]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x411f61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x304b50bb
add eax, 0x304b50bb
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xe3
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x411f20
push edi
push dword [ebx]
call fcn.004028b0
add esp, 8
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov edx, dword [esi + 0xa0]
mov word [edx], 0x21ac
mov eax, dword [esi + 0x234]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x411ff8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xa0]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x23180ffb]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
mov edx, dword [esi + 0xa0]
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x23180ffa
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x23
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x411fb0
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x10c]
mov dword [ecx], eax
mov edi, dword [esi + 0x1b8]
mov word [edi], 0xb9d2
mov eax, dword [esi + 0x230]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov word [eax + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x412092
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x62182b37
add eax, 0x62182b37
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x7e
and eax, 0x7e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x412050
push edi
push dword [ebx]
call fcn.00402860
add esp, 8
fnstcw word [esi + 0x72]
movzx eax, word [esi + 0x72]
or eax, 0xc00
mov word [esi + 0x126], ax
fldcw word [esi + 0x126]
fistp dword [esi + 0x278]
fldcw word [esi + 0x72]
mov eax, dword [esi + 0x278]
mov ecx, dword [esi + 0x1d4]
mov dword [ecx], eax
mov edi, dword [esi + 0x1b4]
mov word [edi], 0xacb8
mov byte [edi + 2], 0x20
mov eax, dword [esi + 0x22c]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x412137
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xcdb60afb
add eax, 0xcdb60afb
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x23
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x412100
push edi
push dword [ebx]
call fcn.00402860
add esp, 8
fnstcw word [esi + 0x70]
movzx eax, word [esi + 0x70]
or eax, 0xc00
mov word [esi + 0x124], ax
fldcw word [esi + 0x124]
fistp dword [esi + 0x274]
fldcw word [esi + 0x70]
mov eax, dword [esi + 0x274]
mov ecx, dword [esi + 0x1d0]
mov dword [ecx], eax
mov edi, dword [esi + 0x1b0]
mov word [edi], 0xcdc6
mov byte [edi + 2], 0x62
mov eax, dword [esi + 0x228]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x4121ef
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x7908d450
add eax, 0x50
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd0
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x4121b0
push edi
push dword [ebx]
call fcn.00402900
add esp, 8
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x1c4]
mov eax, dword [eax]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412210
lea edx, [eax + ebx]
mov dword [esi + 8], 0
test ebx, ebx
mov dword [esi + 0xc], edx
mov dword [esi + 0x7c], eax
jle 0x41226a
cmp byte [eax], 0
je 0x41226a
mov dword [esi + 8], 0
mov edi, dword [esi + 0x7c]
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 8]
cmp ecx, edx
jae 0x41226a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412240
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x412283
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xfc]
mov dword [eax], edx
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 8]
lea ecx, [edx + ecx*2]
mov dword [esi + 0x24], ecx
cmp ecx, edx
jbe 0x412925
test ebx, ebx
mov ecx, dword [esi + 0x60]
mov ebx, dword [esi + 0x7c]
mov edi, dword [esi + 0xc]
jle 0x412928
nop
cmp byte [ebx], 0
je 0x412928
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x41291f
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 0x60]
jb 0x4122c0
jmp 0x412928
mov eax, dword [case.0x411b2a.6]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
inc ecx
mov dword [esi + 8], ecx
mov dword [eax], ecx
mov edi, dword [esi + 0x50]
jmp dword [0x4418c0]
mov dword [esi + 0x24], edx
mov edi, dword [esi + 8]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41233a
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x74]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0xc], eax
cmp eax, ecx
jbe 0x4123a1
cmp dword [esi + 0x2c], 0
mov edi, dword [esi + 0x24]
jle 0x4123a1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4123a1
lea edx, [esi + 0x10]
push edx
push ebx
push edi
mov dword [esi + 8], ecx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 8]
mov word [edx], cx
mov ecx, dword [esi + 8]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x4123a1
add edi, eax
cmp edi, ebx
jb 0x412370
mov word [ecx], 0
mov eax, dword [esi + 0x170]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x4123c0
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x2c], ecx
test ecx, ecx
mov dword [esi + 8], edx
mov dword [esi + 0x24], eax
jle 0x412418
cmp byte [eax], 0
je 0x412418
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ec40
mov edx, dword [esi + 8]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x412418
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4123f0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x412426
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xc8]
mov dword [eax], edx
mov dword [esi + 0x10], 0
lea eax, [edx + ebx*2]
mov dword [esi + 0xc], eax
cmp eax, edx
jbe 0x412493
cmp dword [esi + 0x2c], 0
mov ecx, dword [esi + 0x44]
mov edi, dword [esi + 8]
jle 0x412496
mov ebx, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412496
lea ecx, [esi + 0x10]
push ecx
push edi
push ebx
mov dword [esi + 8], edx
call fcn.0040ec40
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0xc]
jae 0x412493
add ebx, eax
cmp ebx, edi
mov ecx, dword [esi + 0x44]
jb 0x412460
jmp 0x412496
mov ecx, dword [esi + 0x44]
mov word [edx], 0
mov eax, dword [esi + 0x54]
mov dword [eax], 0
mov eax, dword [esi + 0x8c]
mov dword [eax], 0
mov word [ecx], 0xf101
mov byte [ecx + 2], pe_nt_image_headers32
mov eax, dword [esi + 0x224]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x41252d
nop
mov edx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx edi, byte [ecx + eax]
lea eax, [edx - 0x35978e91]
lea ecx, [edx + edi]
add ecx, 0xca68716f
add edx, 0x6f
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xf7
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x44]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0x44]
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4124e0
push ecx
mov eax, dword [esi + 0xf8]
push dword [eax]
call fcn.004028b0
add esp, 8
mov ecx, dword [esi + 0x190]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x441a9c]
push eax
call fcn.00402ab0
add esp, 4
mov ecx, 0xc
mov edx, eax
mov dword [esi + 0xc], eax
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x412580
mov edi, eax
mov eax, dword [esi + 0x8c]
mov ebx, dword [esi + 0xc]
mov dword [eax], ebx
test dl, dl
jne 0x412591
mov ecx, edi
push ecx
call fcn.00408de0
add esp, 4
mov ebx, eax
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441aa4]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
mov dword [esi + 8], eax
mov edx, dword [case.0x412550.5]
mov edi, dword [case.0x412550.7]
mov eax, ebx
jmp edx
mov dword [esi + 0x24], edx
mov edi, dword [esi + 8]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4125e2
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x140]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0xc], eax
cmp eax, ecx
jbe 0x412641
cmp dword [esi + 0x2c], 0
mov edi, dword [esi + 0x24]
jle 0x412641
nop
cmp byte [edi], 0
je 0x412641
lea edx, [esi + 0x10]
push edx
push ebx
push edi
mov dword [esi + 8], ecx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 8]
mov word [edx], cx
mov ecx, dword [esi + 8]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x412641
add edi, eax
cmp edi, ebx
jb 0x412610
mov word [ecx], 0
mov eax, dword [esi + 0x168]
mov ecx, dword [eax]
xor eax, eax
mov ebx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x412660
mov dword [esi + 8], ecx
lea edi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x41267e
mov ecx, 0xffffffff
push ecx
call fcn.00408de0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x13c]
mov dword [eax], ecx
and ebx, 2
mov eax, edi
xor eax, 1
add eax, ebx
mov ebx, ecx
add ecx, 0xfffffffe
cmp dword [esi + 8], 0
jne 0x4126b9
mov edi, dword [esi + 8]
not edi
xor edx, edx
nop
nop
nop
inc edi
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x4126b0
mov dword [esi + 0x10], 0
lea eax, [ecx + eax*2]
mov ecx, ebx
mov dword [esi + 0xc], eax
cmp eax, ebx
jbe 0x412711
test edi, edi
jle 0x412711
mov ebx, dword [esi + 8]
add edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412711
lea edx, [esi + 0x10]
push edx
push edi
push ebx
mov dword [esi + 8], ecx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 8]
mov word [edx], cx
mov ecx, dword [esi + 8]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x412711
add ebx, eax
cmp ebx, edi
jb 0x4126e0
mov word [ecx], 0
mov eax, dword [esi + 0x88]
mov dword [eax], 0
mov eax, dword [esi + 0x84]
mov dword [eax], 0
mov edi, dword [esi + 0xdc]
mov word [edi], 0xc1cd
mov byte [edi + 2], 0x5a
mov eax, dword [esi + 0x220]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x4127b4
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xf12f7cc]
and edx, ecx
mov edi, 0xf0ed0833
sub edi, eax
or edi, ecx
add edi, eax
add edi, 0xf12f7cd
mov ebx, edi
and ebx, edx
xor edx, edi
mov edi, dword [esi + 0xdc]
add eax, ecx
add eax, 0xf12f7cc
lea ecx, [edx + ebx*2]
sub eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x6c
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x412760
push edi
mov eax, dword [esi + 0xf8]
push dword [eax]
call fcn.004028b0
add esp, 8
mov ecx, dword [esi + 0x194]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441b7c]
push eax
call fcn.00402ab0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x84]
mov dword [eax], edi
mov ecx, 0xc
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x41280b
mov ebx, eax
test dl, dl
jne 0x412811
mov ecx, ebx
push ecx
call fcn.00408de0
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
mov edx, edi
mov dword [esi + 8], edi
test edi, edi
sete cl
jmp dword [ecx*4 + 0x441b84]
mov ecx, dword [esi + 8]
lea ecx, [ecx + ecx*2]
lea edi, [eax + ecx*4]
mov edx, dword [case.0x4127d4.5]
mov ebx, eax
jmp edx
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov ebx, dword [esi + 0x38]
je 0x411615
push dword [esi + 0xc0]
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x447860]
push edx
call fcn.00438dd0
add esp, 0x20
jmp 0x411615
mov ebx, dword [esi + 0x1a8]
mov word [ebx], 0xeae6
mov byte [ebx + 2], 0x9a
mov eax, dword [esi + 0x1f0]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x412901
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add ecx, 0x67bb1a94
add eax, 0x94
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xf4
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x4128c0
push 3
push ebx
mov ebx, dword [esi + 0x30]
push dword [ebx]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441934]
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 0x60]
mov word [edx], 0
mov edi, dword [eax]
push ecx
push 0
push 0
push dword [esi + 8]
push edi
push 0
mov ebx, ecx
call dword [0x447854]
mov ebx, dword [ebx]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x412950
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov ecx, dword [esi + 0x9c]
mov dword [ecx], eax
push dword [esi + 0x60]
push ebx
push eax
mov eax, dword [esi + 0x1ac]
push dword [eax]
push edi
push 0
call dword [0x447854]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44193c]
push edi
call fcn.00408df0
add esp, 4
jmp dword [0x441944]
jmp dword [0x441944]
mov eax, dword [esi + 0x10c]
mov edi, dword [eax]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4129b0
test ebx, ebx
jle case.0x412918.4
cmp byte [edi], 0
je case.0x412918.4
add ebx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push ebx
push edi
call fcn.0040ec40
add esp, 0xc
lea ecx, [edi + eax]
cmp ecx, ebx
jae case.0x412918.4
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4129d0
jmp case.0x412918.4
jmp dword [0x44194c]
mov eax, dword [esi + 0x10c]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x412a20
lea edx, [eax + ecx]
xor edi, edi
mov dword [esi + 0x24], ecx
test ecx, ecx
mov dword [esi + 0xc], eax
jle 0x412a00
cmp byte [eax], 0
je 0x412a00
xor edi, edi
mov ebx, dword [esi + 0xc]
mov dword [esi + 8], edx
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push ebx
call fcn.0040ec40
mov edx, dword [esi + 8]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x412a00
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x412a50
jmp 0x412a00
mov dword [esi + 8], edx
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412a8b
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x104]
mov dword [eax], edx
mov dword [esi + 0x10], 0
lea eax, [edx + edi*2]
mov dword [esi + 0x7c], eax
cmp eax, edx
jbe 0x412af3
cmp dword [esi + 0x24], 0
mov ecx, dword [esi + 0x4c]
jle 0x412af6
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
nop
nop
cmp byte [edi], 0
je 0x412af6
lea eax, [esi + 0x10]
push eax
push ebx
push edi
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x7c]
jae 0x412af3
add edi, eax
cmp edi, ebx
mov ecx, dword [esi + 0x4c]
jb 0x412ac0
jmp 0x412af6
mov ecx, dword [esi + 0x4c]
mov word [edx], 0
push 1
call fcn.00409530
xor edi, edi
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x1dc]
jmp 0x412b19
mov eax, dword [esi + 0x1dc]
mov edi, dword [eax]
inc edi
mov dword [eax], edi
mov ebx, dword [ecx]
push ebx
call fcn.00402ab0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x441954]
push edi
push ebx
call fcn.00402a90
add esp, 8
push eax
call fcn.00402840
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44195c]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x412b60
sub ebx, eax
mov ecx, ebx
inc ecx
jns 0x412b90
mov dword [esi + 0x24], eax
mov eax, 0xffffffff
jmp 0x412b99
mov ecx, dword [esi + 0x64]
mov eax, 1
jmp dword [eax*4 + 0x44196c]
mov dword [esi + 0x24], eax
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.00408de0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x1d8]
mov dword [eax], edi
mov eax, ebx
mov edx, dword [esi + 0x24]
test edx, edx
jne 0x412bc9
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412bc0
mov dword [esi + 0x10], 0
lea ecx, [edi + ebx*2]
mov dword [esi + 0xc], ecx
cmp ecx, edi
mov dword [esi + 8], edi
jbe 0x412c30
test eax, eax
jle 0x412c30
mov edi, edx
add edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x412c30
lea eax, [esi + 0x10]
push eax
push edi
push edx
mov ebx, edx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 8]
mov word [edx], cx
add edx, 2
mov dword [esi + 8], edx
cmp edx, dword [esi + 0xc]
jae 0x412c30
add ebx, eax
cmp ebx, edi
mov edx, ebx
jb case.default.0x412c7f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esi + 0x2c], 0
setg al
mov ecx, dword [esi + 8]
mov word [ecx], 0
mov ecx, dword [esi + 0x1d8]
mov edi, dword [ecx]
push 0
push eax
mov eax, dword [esi + 0x1d4]
push dword [eax]
mov eax, dword [esi + 0x1d0]
push dword [eax]
push edi
mov eax, dword [esi + 0x9c]
push dword [eax]
mov eax, dword [esi + 0x104]
push dword [eax]
push dword [esi + 0x4c]
call fcn.0041bc50
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441964]
push edi
call fcn.00408df0
add esp, 4
mov ecx, dword [esi + 0x64]
xor eax, eax
jmp dword [eax*4 + 0x44196c]
mov ecx, dword [esi + 0x64]
xor eax, eax
jmp dword [eax*4 + 0x44196c]
mov eax, dword [case.0x412c7f.3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x104]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441984]
push eax
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x44198c]
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x44198c]
push eax
call fcn.00408df0
add esp, 4
mov ebx, dword [esi + 0x4c]
mov ecx, ebx
call fcn.00409ec0
mov ecx, ebx
call fcn.00409570
mov eax, dword [edi]
inc eax
mov dword [esi + 8], eax
mov dword [edi], eax
mov edi, dword [esi + 0x50]
jmp dword [0x4418c0]
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
mov ebx, dword [esi + 0x38]
je 0x4116f5
push 0
push eax
push dword [esi + 8]
push 0x2b
push dword [esi + 0xc]
push 5
push dword [0x447860]
push edx
call fcn.00438dd0
add esp, 0x20
mov ecx, eax
jmp 0x4116f5
mov edx, dword [esi + 0xc4]
mov word [edx], 0x216
mov byte [edx + 2], 0xb2
mov eax, dword [esi + 0x1e8]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
mov ebx, dword [esi + 0x30]
ja 0x412df3
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0xda46a518
xor eax, 0x5a46a518
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0xc4]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x58
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x412db0
push 3
push edx
push dword [ebx]
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4419cc]
jmp dword [0x441bc0]
lea eax, [edi - 4]
mov dword [esi + 0x24], eax
mov eax, dword [edi - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edi + eax*4]
sete cl
jmp dword [ecx*4 + 0x441bc4]
push dword [esi + 0x24]
call fcn.00408df0
add esp, 4
jmp case.0x4134df.3
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x441bdc]
jmp dword [0x441bd0]
mov eax, dword [ebx - 0xc]
test eax, eax
je case.0x4134df.11
push eax
call fcn.00408df0
add esp, 4
jmp case.0x4134df.11
jmp dword [0x441bd4]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412e80
push eax
call fcn.00408df0
add esp, 4
jmp 0x412e80
push eax
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0x74]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x441b24]
jmp dword [0x441b30]
mov eax, dword [edi]
inc eax
mov dword [esi + 8], eax
mov dword [edi], eax
mov edi, dword [esi + 0x50]
jmp dword [0x4418c0]
push eax
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a64]
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x58]
jmp dword [0x441a70]
mov byte [eax], 0
jmp dword [0x441af0]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x48]
mov byte [ecx], 0
cmp eax, 0x3ff
ja 0x412f30
mov edi, dword [esi + 0x80]
mov byte [edi], 0x30
jmp 0x412f99
mov ebx, eax
shr ebx, 0xa
cmp eax, 0x19000
jb 0x412f80
mov edi, dword [esi + 0x48]
nop
mov eax, ebx
mov ecx, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0x64
mov ecx, ebx
sub ecx, eax
movzx eax, word [ecx + ecx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ebx, 0x270f
mov ebx, edx
ja 0x412f40
cmp edx, 9
ja 0x412f8a
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x412f99
mov edi, dword [esi + 0x48]
mov edx, ebx
cmp edx, 9
jbe 0x412f71
movzx eax, word [edx + edx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0x40]
mov dword [ebx], 0xb1c435b
mov eax, dword [esi + 0x184]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x413007
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x24eed1aa
add eax, 0x24eed1aa
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x5a
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x412fd0
mov ebx, dword [esi + 0xd8]
mov dword [ebx], 0x3d3a2e13
mov dword [ebx + 4], 0x4f133f23
mov dword [ebx + 8], 0x3f3b3234
mov dword [ebx + 0xc], 0x2b483531
mov dword [ebx + 0x10], 0x38294537
mov dword [ebx + 0x14], 0x2403d30
mov dword [ebx + 0x18], 0x80d1306
mov dword [ebx + 0x1c], 0x770b120d
mov dword [ebx + 0x20], 0x6090a06
mov dword [ebx + 0x24], 0x3701d09
mov dword [ebx + 0x28], 0x13006d1f
mov dword [ebx + 0x2c], 0x1c056911
mov dword [ebx + 0x30], 0xd1f0f08
mov dword [ebx + 0x34], 0xee0c6156
mov dword [ebx + 0x38], 0x9be8e2f2
mov dword [ebx + 0x3c], 0xe2e5e6ea
mov dword [ebx + 0x40], 0xfe94f9ed
mov dword [ebx + 0x44], 0xa9ebf7e5
mov word [ebx + 0x48], 0x6d8e
mov eax, dword [esi + 0x180]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x57
ja 0x4130f3
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x49]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xd2f5c949
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
inc al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x58
jb 0x4130c0
lea eax, [0x44684b]
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413100
movzx ecx, byte [ebx]
test cl, cl
je 0x41312f
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x413120
add eax, edx
mov ebx, dword [esi + 0x3c]
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x41314b
inc edi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x413140
mov byte [eax], 0
mov ecx, dword [esi + 0x40]
movzx ecx, byte [ecx]
test cl, cl
je 0x412f00
mov edx, dword [esi + 0x17c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x413170
jmp 0x412f00
mov eax, dword [esi + 0x54]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441af4]
lea eax, [edi - 4]
mov dword [esi + 8], eax
mov eax, dword [edi - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edi + eax*4]
sete cl
jmp dword [ecx*4 + 0x441afc]
push dword [esi + 8]
call fcn.00408df0
add esp, 4
mov ebx, dword [esi + 0x3c]
nop
nop
jmp dword [0x441b18]
mov eax, dword [esi + 0xc8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441b1c]
mov eax, dword [esi + 0x74]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x441b24]
push eax
call fcn.00408df0
add esp, 4
jmp dword [0x441b30]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x441b04]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x41322e
push eax
call fcn.00408df0
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x413210
push eax
call fcn.00408df0
add esp, 4
jmp 0x413210
jmp dword [0x441ae8]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x48]
mov byte [ecx], 0
cmp eax, 0x3ff
ja 0x413264
mov edi, dword [esi + 0x80]
mov byte [edi], 0x30
jmp 0x4132d7
mov ebx, eax
shr ebx, 0xa
cmp eax, 0x19000
jb 0x4132be
mov edi, dword [esi + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
mov ecx, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0x64
mov ecx, ebx
sub ecx, eax
movzx eax, word [ecx + ecx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ebx, 0x270f
mov ebx, edx
ja 0x413280
cmp edx, 9
ja 0x4132c8
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x4132d7
mov edi, dword [esi + 0x48]
mov edx, ebx
cmp edx, 9
jbe 0x4132b1
movzx eax, word [edx + edx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0x40]
mov dword [ebx], 0xb1c435b
mov eax, dword [esi + 0x184]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x413347
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x24eed1aa
add eax, 0x24eed1aa
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x5a
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x413310
mov ebx, dword [esi + 0xd8]
mov dword [ebx], 0x3d3a2e13
mov dword [ebx + 4], 0x4f133f23
mov dword [ebx + 8], 0x3f3b3234
mov dword [ebx + 0xc], 0x2b483531
mov dword [ebx + 0x10], 0x38294537
mov dword [ebx + 0x14], 0x2403d30
mov dword [ebx + 0x18], 0x80d1306
mov dword [ebx + 0x1c], 0x770b120d
mov dword [ebx + 0x20], 0x6090a06
mov dword [ebx + 0x24], 0x3701d09
mov dword [ebx + 0x28], 0x13006d1f
mov dword [ebx + 0x2c], 0x1c056911
mov dword [ebx + 0x30], 0xd1f0f08
mov dword [ebx + 0x34], 0xee0c6156
mov dword [ebx + 0x38], 0x9be8e2f2
mov dword [ebx + 0x3c], 0xe2e5e6ea
mov dword [ebx + 0x40], 0xfe94f9ed
mov dword [ebx + 0x44], 0xa9ebf7e5
mov word [ebx + 0x48], 0x6d8e
mov eax, dword [esi + 0x180]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x57
ja 0x413433
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x49]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xd2f5c949
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
inc al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x58
jb 0x413400
lea eax, [0x44684b]
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413440
movzx ecx, byte [ebx]
test cl, cl
je 0x41346f
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x413460
add eax, edx
mov ebx, dword [esi + 0x3c]
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x41348b
inc edi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x413480
mov byte [eax], 0
mov ecx, dword [esi + 0x40]
movzx ecx, byte [ecx]
test cl, cl
je 0x4134ab
mov edx, dword [esi + 0x17c]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4134a0
mov byte [eax], 0
jmp case.0x413967.5
mov word [edx], 0
mov edi, dword [esi + 0xe4]
mov eax, dword [edi]
inc eax
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov dword [edi], eax
setb dl
jmp dword [edx*4 + 0x441ba4]
push eax
mov eax, dword [esi + 0x194]
push dword [eax]
call fcn.00402ac0
add esp, 8
mov ebx, dword [esi + 0x264]
mov dword [ebx], eax
mov edi, dword [esi + 0xb0]
mov word [edi], 0xdfe9
mov byte [edi + 2], 0x42
mov ecx, dword [esi + 0x260]
mov dword [ecx], 0
mov dword [ecx + 3], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 9
ja 0x413581
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0xb0]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add ecx, 0x36
and ecx, edi
mov edi, dword [esi + 0xb0]
add ecx, ecx
sub edx, ecx
add edx, 0xc03c1b36
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 0x10]
mov edx, ecx
or edx, 0x85
and ecx, 0x85
add ecx, edx
inc cl
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xa
jb 0x413530
push edi
push eax
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x19c]
mov dword [ecx], eax
mov edi, dword [esi + 0x18c]
mov word [edi], 0xa3b5
mov byte [edi + 2], 0xda
mov eax, dword [esi + 0x25c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x413603
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x5c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6b8cab5c
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x7c
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x4135d0
push edi
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x198]
mov dword [ecx], eax
mov edx, dword [esi + 0xac]
mov word [edx], 0xa595
mov byte [edx + 2], 0x32
mov eax, dword [esi + 0x258]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x4136b6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xac]
movzx edx, byte [edx + eax]
lea eax, [ecx + edx]
add eax, 0x587a288
add ecx, 0x587a288
mov edi, edx
not edi
or edi, ecx
add edi, edx
and ecx, edx
add ecx, edi
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov edx, dword [esi + 0xac]
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x48
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x413660
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x88]
mov ecx, dword [ecx]
mov edx, dword [esi + 0xe4]
mov edx, dword [edx]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x19c]
mov edi, dword [edi]
mov ebx, dword [esi + 0x198]
mov ebx, dword [ebx]
mov dword [ecx + edx*4], 0
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], eax
lea eax, [ecx + edx*4]
mov dword [esi + 0xc], eax
mov eax, ebx
mov edi, 0xfffffffe
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413710
mov dword [esi + 8], eax
mov ecx, edi
and ecx, 2
mov eax, ebx
xor eax, 1
add eax, ecx
jns 0x413740
mov eax, 0xffffffff
jmp 0x413742
add eax, eax
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], edx
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x413769
mov ebx, ecx
not ebx
xor eax, eax
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x413760
mov dword [esi + 0x10], 0
add edi, edx
cmp edi, edx
jbe 0x4134c0
test ebx, ebx
jle 0x4134c0
add ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4134c0
lea eax, [esi + 0x10]
push eax
push ebx
push ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4134c0
mov ecx, dword [esi + 8]
add ecx, eax
cmp ecx, ebx
jb 0x413790
jmp 0x4134c0
jmp dword [0x441bec]
xor eax, eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441bf4]
push ecx
call fcn.00408df0
add esp, 4
mov eax, dword [case.0x4134df.25]
mov edi, dword [esi + 0x34]
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441c0c]
push ecx
call fcn.00408df0
add esp, 4
mov ecx, dword [esi + 0x138]
call fcn.00409570
mov eax, dword [edi]
inc eax
mov dword [esi + 8], eax
mov dword [edi], eax
mov edi, dword [esi + 0x50]
jmp dword [0x4418c0]
push eax
call fcn.00408df0
add esp, 4
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x58]
jmp dword [0x441a70]
mov ecx, edi
call fcn.00409ec0
mov ecx, edi
call fcn.00409570
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
call fcn.00409ec0
mov ecx, edi
call fcn.00409570
jmp dword [0x441a74]
mov eax, dword [esi + 0xbc]
push dword [eax]
call fcn.00437380
add esp, 4
mov eax, dword [case.0x411537.2]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, ebx
call fcn.004377e0
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
inc ecx
mov dword [esi + 8], ecx
mov dword [eax], ecx
mov edi, dword [esi + 0x50]
jmp dword [0x4418c0]
xor edi, edi
xor eax, eax
cmp edi, dword [esi + 0xc]
setb al
mov ebx, dword [esi + 0x188]
jmp dword [eax*4 + 0x441ad4]
mov ebx, dword [esi + 0x3c]
mov ecx, ebx
push 2
call fcn.00409530
mov eax, dword [esi + 0x8c]
push dword [eax]
mov eax, dword [esi + 0x54]
push dword [eax]
mov eax, dword [esi + 0xc8]
push dword [eax]
mov eax, dword [esi + 0x74]
push dword [eax]
push ebx
call fcn.00416b00
add esp, 0x14
mov ecx, ebx
call fcn.00409ec0
movzx eax, al
jmp dword [eax*4 + 0x441adc]
push ecx
mov ebx, dword [esi + 0x188]
push dword [ebx]
call fcn.00402900
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0xe8]
mov edi, dword [eax]
lea ecx, [edi + edi*2]
shl ecx, 2
mov eax, dword [esi + 0x54]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x1a4]
push dword [eax]
mov eax, dword [esi + 0x1a0]
push dword [eax]
call fcn.00416490
inc edi
mov eax, dword [esi + 0xe8]
mov dword [eax], edi
xor eax, eax
mov ecx, dword [esi + 0x8c]
cmp edi, dword [ecx]
setb al
jmp dword [eax*4 + 0x441ad4]
push edi
mov eax, dword [esi + 0x190]
push dword [eax]
call fcn.00402ac0
add esp, 8
mov dword [ebx], eax
mov edi, dword [esi + 0x1e0]
mov word [edi], 0x5f49
mov byte [edi + 2], 0xa2
mov byte [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 7
ja 0x4139f3
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [ecx + 0x4f77c566]
add ecx, 0x66
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x1e0]
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, 0x35
and ecx, 0x35
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 8
jb 0x4139b0
push edi
push eax
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x1a4]
mov dword [ecx], eax
mov edx, dword [esi + 0x114]
mov word [edx], 0xd3e5
mov byte [edx + 2], 0x5a
mov byte [edx + 0xb], 0
mov dword [edx + 7], 0
mov dword [edx + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x413a85
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x114]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x34]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
mov edx, dword [esi + 0x114]
add ecx, edi
neg ecx
add eax, ecx
add eax, 0xac263933
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x94
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x413a40
push edx
push dword [ebx]
call fcn.00402810
add esp, 8
mov ecx, dword [esi + 0x1a0]
mov dword [ecx], eax
mov ecx, dword [esi + 0xb4]
mov dword [ecx], 0xb32a2922
mov dword [ecx + 0xb], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x413910
nop
nop
nop
nop
mov ebx, dword [esi + 4]
lea ecx, [ebx - 0x63c85f37]
lea edx, [ebx + 0xc9]
mov edi, edx
and edi, ecx
xor edx, ecx
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xb4]
movzx ecx, byte [eax + ecx]
and edi, ecx
and edx, ecx
lea eax, [ebx + ecx]
add eax, 0x9c37a0c9
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x81
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xb4]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xb4]
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x413ad0
jmp 0x413910
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
jmp edi
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp dword [0x441b98]
add ebx, 0xc
xor ecx, ecx
cmp ebx, edi
sete cl
jmp dword [ecx*4 + 0x441b9c]
jmp edx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp case.0x4127d4.5
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
xor eax, eax
xor ecx, ecx
cmp eax, dword [esi + 8]
mov edx, dword [esi + 0xe4]
mov dword [edx], eax
setb cl
jmp dword [ecx*4 + 0x441ba4]
mov ebx, dword [esi + 0x138]
mov ecx, ebx
push 3
call fcn.00409530
mov eax, dword [esi + 0x88]
mov edi, dword [eax]
mov eax, dword [esi + 0x13c]
mov ecx, dword [eax]
mov eax, dword [esi + 0x140]
mov edx, dword [eax]
mov eax, dword [esi + 0x84]
push dword [eax]
push edi
mov dword [esi + 8], ecx
push ecx
mov dword [esi + 0xc], edx
push edx
push ebx
call fcn.00419260
add esp, 0x14
mov ecx, ebx
call fcn.00409ec0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441bac]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, ebx
setae dl
jmp dword [edx*4 + 0x441a04]
xor edx, edx
movzx edx, dl
mov edi, eax
jmp dword [edx*4 + 0x441a0c]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov edi, ecx
jmp dword [edx*4 + 0x441a14]
mov edx, edi
sub edx, ebx
sar edx, 1
mov eax, dword [esi + 0x12c]
mov eax, dword [eax]
lea ecx, [eax + edx]
inc ecx
mov dword [esi + 0xc], edx
add eax, edx
add eax, eax
add eax, 2
test ecx, ecx
mov dword [esi + 8], ebx
jns 0x413c73
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x128]
mov dword [eax], ebx
mov eax, dword [esi + 0xb8]
mov eax, dword [eax]
cmp edi, dword [esi + 8]
je 0x413d49
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0xc]
lea edi, [edx - 1]
mov dword [esi + 0x24], edi
mov edi, edx
and edi, 3
mov dword [esi + 0x2c], eax
je 0x413ce4
xor edx, edx
mov dword [esi + 8], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [ecx]
xor eax, eax
test di, di
setne al
lea ecx, [ecx + eax*2]
mov word [ebx], di
add ebx, 2
inc edx
cmp dword [esi + 8], edx
jne 0x413cc0
mov edi, dword [esi + 0xc]
sub edi, edx
mov edx, edi
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x24]
cmp edi, 3
jb 0x413d49
nop
nop
nop
nop
movzx eax, word [ecx]
mov edi, edx
xor edx, edx
test ax, ax
setne dl
mov word [ebx], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [ebx + 6], dx
mov edx, edi
add ebx, 8
add edx, 0xfffffffc
jne 0x413cf0
mov eax, dword [esi + 0x2c]
movzx ecx, word [eax]
test cx, cx
je 0x413d71
add eax, 2
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 0x413d60
mov word [ebx], 0
mov eax, dword [esi + 0xb8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a1c]
push eax
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0x128]
mov edi, dword [eax]
sub ebx, edi
mov eax, 0xffffffff
cmp ebx, 0xfffffffe
jl 0x413dae
add ebx, 2
mov eax, ebx
push eax
call fcn.00408de0
add esp, 4
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
push eax
push edi
call fcn.00433fe0
add esp, 8
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a24]
push edi
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0x130]
mov eax, dword [eax]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413df0
lea edx, [eax + ebx]
test ebx, ebx
mov dword [esi + 8], edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x2c], ebx
jle 0x413e4a
xor ebx, ebx
cmp byte [eax], 0
je 0x413e4c
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ec40
mov edx, dword [esi + 8]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x413e4c
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413e20
jmp 0x413e4c
xor ebx, ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413e5a
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x94]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0xc], eax
cmp eax, ecx
jbe 0x413ec1
cmp dword [esi + 0x2c], 0
mov edi, dword [esi + 8]
jle 0x413ec1
mov ebx, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413ec1
lea edx, [esi + 0x10]
push edx
push edi
push ebx
mov dword [esi + 8], ecx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 8]
mov word [edx], cx
mov ecx, dword [esi + 8]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x413ec1
add ebx, eax
cmp ebx, edi
jb 0x413e90
mov word [ecx], 0
mov ecx, dword [esi + 0x58]
push 1
call fcn.00409530
xor edi, edi
jmp 0x413ee1
inc edi
mov eax, dword [esi + 0xcc]
mov dword [eax], edi
mov eax, dword [esi + 0x164]
mov ebx, dword [eax]
push ebx
call fcn.00402ab0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x441a2c]
push edi
push ebx
call fcn.00402a90
add esp, 8
push eax
call fcn.00402840
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x1c8]
mov dword [eax], ebx
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441a34]
jmp dword [0x441a40]
mov eax, ebx
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x413f40
sub edi, ebx
mov eax, edi
inc eax
jns 0x413f56
mov eax, 0xffffffff
jmp 0x413f5c
lea eax, [edi + edi]
add eax, 2
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xa4]
mov dword [eax], edx
mov eax, edi
test ebx, ebx
jne 0x413f89
mov eax, ebx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413f80
mov dword [esi + 0x10], 0
lea ecx, [edx + edi*2]
mov dword [esi + 0xc], ecx
cmp ecx, edx
jbe 0x413fe0
test eax, eax
jle 0x413fe0
mov edi, ebx
add edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413fe0
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 8], edx
call fcn.0040ec40
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0xc]
jae 0x413fe0
add ebx, eax
cmp ebx, edi
jb 0x413fb0
nop
nop
mov word [edx], 0
push 0
push 0
mov eax, dword [esi + 0xf4]
push dword [eax]
mov eax, dword [esi + 0xf0]
push dword [eax]
mov eax, dword [esi + 0xa4]
push dword [eax]
mov eax, dword [esi + 0x5c]
push dword [eax]
mov eax, dword [esi + 0x94]
push dword [eax]
push dword [esi + 0x58]
call fcn.0041bc50
add esp, 0x20
jmp case.0x411537.27
mov word [edx], 0
mov eax, dword [esi + 0xa4]
mov edi, dword [eax]
push 0
push 0
mov eax, dword [esi + 0xf4]
push dword [eax]
mov eax, dword [esi + 0xf0]
push dword [eax]
push edi
mov eax, dword [esi + 0x5c]
push dword [eax]
mov eax, dword [esi + 0x94]
push dword [eax]
push dword [esi + 0x58]
call fcn.0041bc50
add esp, 0x20
jmp dword [0x441a48]
mov eax, dword [esi + 0x1c8]
mov eax, dword [eax]
mov edi, 0xfffffffe
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x414080
mov dword [esi + 8], eax
mov ecx, edi
and ecx, 2
mov eax, ebx
xor eax, 1
add eax, ecx
jns 0x4140b0
mov eax, 0xffffffff
jmp 0x4140b2
add eax, eax
push eax
call fcn.00408de0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xa4]
mov dword [eax], edx
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x4140e9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4140e0
mov dword [esi + 0x10], 0
add edi, edx
cmp edi, edx
jbe 0x414020
test ebx, ebx
jle 0x414020
add ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x414020
lea eax, [esi + 0x10]
push eax
push ebx
push ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
call fcn.0040ec40
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x414020
mov ecx, dword [esi + 8]
add ecx, eax
cmp ecx, ebx
jb 0x414110
jmp 0x414020
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a4c]
push edi
call fcn.00408df0
add esp, 4
mov eax, dword [esi + 0xcc]
mov edi, dword [eax]
inc edi
jmp 0x413ee7
mov eax, dword [esi + 0x94]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a5c]
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a64]
add eax, 0xc
xor ecx, ecx
cmp eax, dword [esi + 8]
sete cl
jmp dword [ecx*4 + 0x441abc]
jmp edx
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
jmp edi
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0xe8]
jmp dword [0x441ac4]
mov dword [ecx], ebx
mov dword [eax], 0
nop
nop
nop
nop
mov dword [ecx], ebx
mov dword [eax], 0
jmp dword [0x441acc]
mov ecx, ebx
call fcn.00409570
mov ecx, ebx
call fcn.00409570
jmp dword [0x441b34]
mov eax, dword [case.0x411537.47]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x410da8.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
jmp 0x414228
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x518
push dword [ebp + 8]
call fcn.004028e0
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
xor ebx, ebx
mov dword [esp + 0x2c], esi
jmp dword [eax*4 + 0x441c1c]
jmp dword [0x441c2c]
jmp dword [0x441c50]
mov dword [esp + 0x48], 0xcb47cd42
mov dword [esp + 0x4c], 0xc77ac97a
mov dword [esp + 0x50], 0xc376c570
mov dword [esp + 0x54], 0xdf90c18f
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0xdddc
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1d
ja 0x41431e
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx esi, byte [esp + ecx + 0x48]
lea edi, [edx - 0x12fb21e]
and edi, esi
lea ecx, [edx + 0xe2]
and ecx, esi
add ecx, edi
add edx, esi
add edx, 0xfed04de2
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xd2
mov edx, dword [esp]
mov byte [esp + edx + 0x48], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1e
jb 0x4142d0
lea edi, [esp + 0xa8]
lea edx, [esp + 0x48]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [esp + eax + 0xaa], 0
lea eax, [eax + 2]
jne 0x414350
sar eax, 1
mov ecx, dword [esp + 0x34]
add ecx, ebx
add ecx, dword [esp + 0x44]
lea edx, [ecx + eax]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
mov esi, dword [esp + 0xc]
jns 0x414385
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x4143c1
lea edx, [esp + 0xaa]
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 0x4143b0
mov dword [eax], 0x220020
add eax, 4
movzx ecx, word [esi]
test cx, cx
je 0x4143f1
lea edx, [esi + 2]
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 0x4143e0
mov word [eax], 0x22
mov dword [esp + 0x48], 0xcb47cd42
mov dword [esp + 0x4c], 0xc77ac97a
mov dword [esp + 0x50], 0xc376c570
mov dword [esp + 0x54], 0xdf90c18f
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0xdddc
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1d
ja 0x41449e
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx esi, byte [esp + ecx + 0x48]
lea edi, [edx - 0x12fb21e]
and edi, esi
lea ecx, [edx + 0xe2]
and ecx, esi
add ecx, edi
add edx, esi
add edx, 0xfed04de2
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xd2
mov edx, dword [esp]
mov byte [esp + edx + 0x48], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1e
jb 0x414450
lea edi, [esp + 0xa8]
lea edx, [esp + 0x48]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [esp + eax + 0xaa], 0
lea eax, [eax + 2]
jne 0x4144d0
sar eax, 1
mov ecx, dword [esp + 0x34]
add ecx, ebx
add ecx, dword [esp + 0x44]
lea edx, [ecx + eax]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
mov edi, dword [esp + 0xc]
jns 0x414505
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov esi, eax
movzx eax, word [esp + 0xa8]
mov dword [esp + 8], esi
test ax, ax
je 0x414541
lea ecx, [esp + 0xaa]
mov esi, dword [esp + 8]
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414530
mov dword [esi], 0x220020
add esi, 4
movzx eax, word [edi]
test ax, ax
je 0x414571
lea ecx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414560
mov word [esi], 0x22
jmp dword [0x441d38]
lea ebx, [esi + 2]
jmp dword [0x441d3c]
push edi
call fcn.00408df0
add esp, 4
mov eax, dword [case.0x41575a.13]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0xfc]
jmp dword [eax*4 + 0x441d54]
mov edi, ebx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
jmp dword [eax*4 + 0x441d6c]
lea edi, [esi + 4]
mov eax, dword [case.0x41575a.22]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [ebx], 0x2c
mov eax, 0xffffffff
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4145f0
mov dword [esp + 0x48], 0
cmp dword [esp + 0x34], 2
jl 0x414659
test eax, eax
jle 0x414659
mov ebx, edx
add ebx, eax
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*2]
add eax, 2
mov dword [esp + 0xc], eax
nop
cmp byte [edx], 0
je 0x414659
lea eax, [esp + 0x48]
push eax
push ebx
push edx
mov esi, edx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0xc]
jae 0x414655
add esi, eax
cmp esi, ebx
mov ecx, dword [esp + 0x30]
mov edx, esi
jb 0x414620
jmp 0x414659
mov ecx, dword [esp + 0x30]
mov word [edi], 0
mov eax, dword [esp + 0x38]
jmp dword [eax*4 + 0x441d6c]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x414680
lea esi, [edi + 2]
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x44]
cmp edx, 2
jl 0x4146df
test eax, eax
jle 0x4146df
mov ebx, ecx
add ebx, eax
lea eax, [edi + edx*2]
mov dword [esp + 0xc], eax
nop
nop
nop
cmp byte [ecx], 0
je 0x4146df
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0xc]
jae 0x4146df
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x4146b0
mov word [esi], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x441d7c]
xor eax, eax
mov ecx, 1
mov dword [esp + 0x40], 0
xor edi, edi
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xec]
jmp dword [ecx*4 + 0x441d84]
xor eax, eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x441d9c]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x441da4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441dac]
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414750
sub eax, edi
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x41476a
mov ecx, 0xffffffff
push ecx
call fcn.00408de0
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0xa8], 0x73726d4a
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov byte [esp + 0xb4], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xc
ja 0x414805
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xa8]
lea edx, [eax + 0x23ac476e]
and edx, ecx
add eax, ecx
add eax, 0x23ac476e
add edx, edx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xfe
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xd
jb 0x4147c0
mov dword [esp + 0x48], 0x83758576
mov dword [esp + 0x4c], 0x8f6b817b
mov dword [esp + 0x50], 0x8b718d70
mov dword [esp + 0x54], 0x97638962
mov dword [esp + 0x58], 0x93609562
mov dword [esp + 0x5c], 0x9fa391b2
mov dword [esp + 0x60], 0x9b649d75
mov dword [esp + 0x64], 0xa7759971
mov dword [esp + 0x68], 0xa34aa586
mov dword [esp + 0x6c], 0xaf50a125
mov dword [esp + 0x70], 0xab51ad41
mov dword [esp + 0x74], 0xb788a957
mov dword [esp + 0x78], 0xb35eb585
mov dword [esp + 0x7c], 0xbf9eb192
mov word [esp + 0x80], 0xbdbe
mov dword [esp + 0x86], 0
mov dword [esp + 0x82], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x41
ja 0x4148e6
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 + 0x48]
lea edx, [eax + 0x5b59dd41]
add eax, 0x41
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x39
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x42
jb 0x4148b0
movzx ecx, word [esp + 0x48]
mov eax, dword [esp + 8]
test cx, cx
lea edx, [esp + 0x4a]
je 0x414911
mov eax, dword [esp + 8]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414900
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x414941
lea edx, [edi + 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 0x414930
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
mov dword [esp + 0xc], edi
je 0x414971
lea edx, [esp + 0xaa]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414960
mov word [eax], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
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 + 0x5c], 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], 0x44
push 0x89047569
push dword [0x44784c]
call fcn.0043a6c0
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x48]
push ecx
push edx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x28]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441df4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x22212027
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x414ad8
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0xa8]
lea ecx, [edx + 0xfb]
and ecx, esi
mov edi, 0x9a3a7204
sub edi, edx
or edi, esi
not edi
add edi, esi
sub edi, ecx
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0x23
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x414a90
mov ecx, dword [0x447858]
test ecx, ecx
je case.0x41575a.58
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x41500e
inc esi
cmp ecx, esi
jne 0x414b00
jmp case.0x41575a.58
sete al
movzx eax, al
jmp dword [eax*4 + 0x441db4]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x441dbc]
mov dword [esp + 0xc], edi
push 0x51b4a2b7
push dword [0x44784c]
call fcn.0043a6c0
add esp, 8
push 0
push 0
push dword [esp + 0x44]
push 0x41dac0
push 0
push 0
call eax
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x441dcc]
jmp dword [0x441dd8]
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x48], 0x22212027
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x414bfe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x48]
lea eax, [ecx + 0xfb]
and eax, edx
mov esi, 0x9a3a7204
sub esi, ecx
or esi, edx
not esi
add esi, edx
sub esi, eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
add al, 0x23
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x414bc0
mov eax, dword [0x447858]
test eax, eax
je case.0x41575a.51
mov ecx, dword [esp + 0x48]
xor edx, edx
mov esi, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x10c53004
je 0x414dd7
inc edx
cmp eax, edx
jne 0x414c20
jmp case.0x41575a.51
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
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 + 0x5c], 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], 0x44
push 0x89047569
push dword [0x44784c]
call fcn.0043a6c0
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x48]
push ecx
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
mov dword [esp + 0x30], edi
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441dc4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x22212027
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x414d98
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0xa8]
lea ecx, [edx + 0xfb]
and ecx, esi
mov edi, 0x9a3a7204
sub edi, edx
or edi, esi
not edi
add edi, esi
sub edi, ecx
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0x23
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x414d50
mov ecx, dword [0x447858]
test ecx, ecx
je case.0x41575a.46
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x415030
inc esi
cmp ecx, esi
jne 0x414dc0
jmp case.0x41575a.46
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je case.0x41575a.51
lea ecx, [esp + 0xa8]
push ecx
push 0
push edi
push 3
push dword [0x447860]
push eax
call fcn.00438dd0
add esp, 0x18
jmp case.0x41575a.51
jmp dword [0x441ddc]
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x48], 0x22212027
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x414e8e
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x48]
lea eax, [ecx + 0xfb]
and eax, edx
mov esi, 0x9a3a7204
sub esi, ecx
or esi, edx
not esi
add esi, edx
sub esi, eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
add al, 0x23
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x414e50
mov eax, dword [0x447858]
test eax, eax
je 0x414e00
mov ecx, dword [esp + 0x48]
xor edx, edx
mov esi, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x10c53004
je 0x414ed0
inc edx
cmp eax, edx
jne 0x414eb0
jmp 0x414e00
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x414e00
lea ecx, [esp + 0xa8]
push ecx
push 0
push edi
push 3
push dword [0x447860]
push eax
call fcn.00438dd0
add esp, 0x18
jmp 0x414e00
mov dword [esp + 0x48], 0x22212027
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x414f6e
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x48]
lea eax, [ecx + 0xfb]
and eax, edx
mov esi, 0x9a3a7204
sub esi, ecx
or esi, edx
not esi
add esi, edx
sub esi, eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
add al, 0x23
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x414f30
mov eax, dword [0x447858]
test eax, eax
je 0x414fba
mov ecx, dword [esp + 0x48]
xor edx, edx
mov esi, dword [0x44785c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xad91fd63
je 0x414fa0
inc edx
cmp eax, edx
jne 0x414f90
jmp 0x414fba
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x414fba
push edi
push 1
push dword [0x447860]
push eax
call fcn.00438dd0
add esp, 0x10
mov esi, dword [esp + 0x2c]
mov eax, dword [case.0x41575a.40]
mov edi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441dfc]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441e04]
push edi
call fcn.00408df0
add esp, 4
xor ecx, ecx
cmp dword [esp + 8], 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x441e0c]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415093
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441dfc]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4150bf
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441dfc]
push eax
call fcn.00437380
add esp, 4
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441e04]
xor ecx, ecx
cmp dword [esp + 8], 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x441e0c]
push dword [esp + 8]
call fcn.00408df0
add esp, 4
xor eax, eax
jmp case.0x416259.0
push eax
push 1
push dword [0x447860]
push ecx
call fcn.00438dd0
add esp, 0x10
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441dfc]
push eax
push 1
push dword [0x447860]
push ecx
call fcn.00438dd0
add esp, 0x10
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441dfc]
jmp dword [0x441cd8]
push esi
call fcn.00408df0
add esp, 4
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408df0
add esp, 4
jmp dword [0x441cdc]
movzx eax, bl
mov ebx, dword [esp + 0xec]
jmp dword [eax*4 + 0x441c6c]
mov dword [esp + 0x10], 0x13ff1120
mov dword [esp + 0x14], 0x1ff31dea
mov word [esp + 0x18], 0x191e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x15
mov esi, dword [esp + 0x2c]
ja 0x4151b7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xe53dc2d3
xor eax, 0x653dc2d3
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0x3a
and eax, 0x3a
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x16
jb 0x415170
mov edi, ebx
mov eax, ebx
add eax, 0xfffffffe
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4151c0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4151f3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4151e0
add eax, edx
mov word [eax], 0
jmp 0x415612
jmp 0x415612
mov eax, 4
jmp dword [0x441c7c]
mov word [esp + 0x48], 0x9f86
mov byte [esp + 0x4a], 0x72
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 0x53], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xe
ja 0x415296
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0xbbdd882e
add eax, 0xbbdd882e
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xbe
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xf
jb 0x415250
lea esi, [esp + 0x48]
push esi
push dword [esp + 0x3c]
call fcn.00402810
add esp, 8
mov dword [esp + 0x40], eax
mov word [esp + 0x48], 0x8391
mov byte [esp + 0x4a], 0x32
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x415322
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x58]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe3727258
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x98
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x4152e0
push esi
push dword [esp + 0x3c]
call fcn.00402810
add esp, 8
mov ebx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ebx + 2], 0
lea ebx, [ebx + 2]
jne case.default.0x415363
sar ebx, 1
xor edx, edx
mov ecx, dword [esp + 0x40]
test ecx, ecx
setne dl
mov dword [esp + 0x30], eax
mov dword [esp + 0xfc], edx
jmp dword [edx*4 + 0x441d1c]
mov dword [esp + 0x34], 0
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x38], ecx
jmp dword [ecx*4 + 0x441d24]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne 0x415390
sub edx, eax
inc edx
mov dword [esp + 0x44], edx
jmp dword [0x441d30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne case.default.0x4153d6
sub edx, dword [esp + 0x40]
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov dword [esp + 0x34], ecx
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x38], ecx
jmp dword [ecx*4 + 0x441d24]
mov dword [esp + 0x44], 0
jmp dword [0x441d30]
mov dword [esp + 0x10], 0x3b9c3958
mov dword [esp + 0x14], 0x3f903d96
mov word [esp + 0x18], 0x213e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov byte [esp + 0x22], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x12
mov edi, ebx
ja 0x41546d
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x87]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x566ee887
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x4f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x13
jb 0x415430
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415480
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4151f3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4154a0
jmp 0x4151f1
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
push edi
mov edi, eax
push ebx
push eax
push dword [esp + 0x14]
mov esi, dword [esp + 0x40]
push esi
push 0
call dword [0x447854]
mov eax, dword [esp + 0x34]
mov ecx, eax
lea ebx, [esp + 0x48]
jmp dword [0x441cc4]
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne case.0x416259.15
mov ecx, edx
sub ecx, eax
mov dword [esp + 8], 0
mov dword [esp + 0x44], ecx
test ecx, ecx
jle 0x41554a
cmp byte [eax], 0
je 0x41554a
mov dword [esp + 8], 0
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
push ebx
push edx
push edi
mov esi, edx
call fcn.0040ec40
mov edx, esi
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esp + 8]
cmp ecx, esi
jae 0x41554a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x415520
mov esi, dword [esp + 8]
mov eax, esi
mov ebx, edx
inc eax
jns 0x41555c
mov eax, 0xffffffff
jmp 0x415562
lea eax, [esi + esi]
add eax, 2
push eax
call fcn.00408de0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], ecx
cmp ecx, eax
jbe 0x4155d0
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x44], 0
jle 0x4155d0
mov esi, ebx
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4155d0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0xc]
jae 0x4155d0
add ebx, eax
cmp ebx, esi
jb 0x4155a0
nop
nop
nop
nop
nop
mov word [edi], 0
lea edi, [esp + 0xa8]
push edi
push 0
push 0
push dword [esp + 0x14]
push dword [esp + 0x40]
push 0
call dword [0x447854]
mov ebx, dword [esp + 0xa8]
test ebx, ebx
js 0x4154b6
lea eax, [ebx + ebx]
jmp 0x4154bb
jmp dword [0x441ccc]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 4]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push eax
push edi
call fcn.0043b350
add esp, 0x1c
mov ebx, eax
not eax
shr eax, 0x1f
mov dword [esp + 0xc], edi
jmp dword [eax*4 + 0x441d04]
jmp 0x415732
push 0
push dword [esp + 0x110]
push dword [esp + 0x44]
push dword [esp + 0x10]
call fcn.0043bc10
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x48], 0x22212027
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x53], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
ja 0x4156ea
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx esi, byte [esp + ecx + 0x48]
lea ecx, [edx + 0xfb]
and ecx, esi
mov edi, 0x9a3a7204
sub edi, edx
or edi, esi
not edi
add edi, esi
sub edi, ecx
mov dword [esp + 0xa8], edi
mov ecx, dword [esp + 0xa8]
add cl, 0x23
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xf
jb 0x4156a0
mov ecx, dword [0x447858]
test ecx, ecx
je case.default.0x41575a
mov edx, dword [esp + 0x48]
xor esi, esi
mov edi, dword [0x44785c]
cmp dword [edi + esi*8], 0xad91fd63
je 0x415710
inc esi
cmp ecx, esi
jne 0x415700
jmp case.default.0x41575a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.default.0x41575a
push eax
push 1
push dword [0x447860]
push ecx
call fcn.00438dd0
add esp, 0x10
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.00437380
add esp, 4
mov dword [esp + 0x3c], 0
not ebx
shr ebx, 0x1f
mov eax, 4
mov dword [esp + 8], 0
xor ecx, ecx
jmp dword [ebx*4 + 0x441d0c]
xor edx, edx
cmp dword [esp + 0x40], 1
sete dl
mov dword [esp + 8], 0
mov ecx, 1
xor eax, eax
jmp dword [edx*4 + 0x441d14]
mov ebx, dword [esp + 0xec]
jmp dword [ecx*4 + 0x441d84]
jmp dword [0x441d98]
mov word [esp + 0x48], 0x1186
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x41580b
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x4822bc7d]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xb7dd4382
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x6b
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x4157c0
lea eax, [esp + 0x48]
push eax
push edi
call fcn.00402810
add esp, 8
mov word [esp + 0x48], 0x1186
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x41588b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x4822bc7d]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xb7dd4382
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x6b
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x415840
lea ebx, [esp + 0x48]
push ebx
push edi
call fcn.00402810
add esp, 8
jmp dword [0x441cb0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441cb4]
mov dword [esp + 0x48], 0xbc3c3130
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov word [esp + 0x54], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xd
ja 0x415928
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + ecx + 0x48]
mov ecx, 0x638d2857
sub ecx, eax
add eax, 0xa8
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa8]
add al, 0x68
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xe
jb 0x4158e0
mov eax, dword [esp + 0x48]
push dword [eax + 0x14]
call fcn.00409390
add esp, 4
call fcn.004093b0
mov esi, eax
and esi, 0xf
or esi, 0x10
xor ebx, ebx
xor eax, eax
cmp ebx, esi
setb al
jmp dword [eax*4 + 0x441ce4]
call fcn.004093b0
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 [esp + ebx*2 + 0xa8], ax
inc ebx
xor eax, eax
cmp ebx, esi
setb al
jmp dword [eax*4 + 0x441ce4]
mov word [esp + ebx*2 + 0xa8], 0
mov dword [esp + 0x10], 0x1bf61925
mov dword [esp + 0x14], 0x17c315c9
mov dword [esp + 0x18], 0x132f11c0
mov dword [esp + 0x1c], 0x2f2e2dc8
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x12
ja 0x415a34
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 + 0x10]
lea edx, [eax + 0x20af6d54]
add eax, 0x54
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xb3
and eax, 0x33
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x13
jb 0x4159f0
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x48]
test ax, ax
lea ecx, [esp + 0x12]
je 0x415a61
lea esi, [esp + 0x48]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415a50
mov word [esi], 0
movzx eax, word [esp + 0xa8]
test ax, ax
je 0x415a91
lea ecx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415a80
mov word [esi], 0
lea edi, [esp + 0x48]
sub esi, edi
sar esi, 1
lea eax, [esp + 0xf8]
push eax
push 0
push 0
push esi
push edi
push 0
call dword [0x447854]
mov ebx, dword [esp + 0xf8]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x415acb
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
lea ecx, [esp + 0xf8]
push ecx
push ebx
mov ebx, eax
push eax
push esi
push edi
push 0
call dword [0x447854]
xor eax, eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441cec]
xor eax, eax
cmp ecx, 1
sete al
mov esi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x441cf4]
xor eax, eax
cmp ecx, 2
sete al
mov edi, ebx
jmp dword [eax*4 + 0x441cfc]
mov dword [esp + 0x10], 0xc374c534
mov dword [esp + 0x14], 0xcf3fc17f
mov word [esp + 0x18], 0xcdce
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x16
ja 0x415bbf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x10]
mov ecx, 0xc663a95e
sub ecx, eax
add eax, 0xa1
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp], ecx
mov eax, dword [esp]
add al, 0x99
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
cmp eax, 0x17
jb 0x415b70
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415bd0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4151f3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x415bf0
jmp 0x4151f1
mov ecx, eax
mov dword [esp + 0x34], eax
jmp dword [0x441cc0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x415c20
mov ecx, esi
mov eax, dword [esp + 0x34]
sub ecx, eax
mov dword [esp + 8], 0
test ecx, ecx
mov dword [esp + 0x44], ecx
jle 0x415c86
cmp byte [eax], 0
je 0x415c86
mov dword [esp + 8], 0
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
push ebx
push esi
push edi
call fcn.0040ec40
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esp + 8]
cmp ecx, esi
jae 0x415c86
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x415c60
mov edi, dword [esp + 8]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x415c98
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
mov edx, edi
and edx, 1
mov ecx, edi
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x48], 0
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], ecx
cmp ecx, eax
jbe 0x415d0b
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x44], 0
jle 0x415d0b
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
nop
nop
nop
cmp byte [edi], 0
je 0x415d0b
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0xc]
jae 0x415d0b
add edi, eax
cmp edi, esi
jb 0x415ce0
mov word [ebx], 0
lea esi, [esp + 0xa8]
push esi
push 0
push 0
mov ebx, dword [esp + 0x14]
push ebx
push dword [esp + 0x40]
push 0
call dword [0x447854]
mov edi, dword [esp + 0xa8]
lea eax, [edi + edi]
test edi, edi
jns 0x415d40
mov eax, 0xffffffff
push eax
call fcn.00408de0
add esp, 4
push esi
push edi
push eax
push ebx
push dword [esp + 0x40]
push 0
call dword [0x447854]
mov eax, dword [esp + 0x34]
mov ecx, eax
lea ebx, [esp + 0x48]
jmp case.0x416259.15
jmp dword [0x441e54]
inc ebx
mov eax, dword [case.0x4134df.34]
nop
nop
nop
nop
jmp eax
mov dword [esp + 0xec], ebx
lea eax, [esp + 0x110]
push 2
push eax
push edi
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441c5c]
mov word [esp + 0x48], 0x8db8
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov byte [esp + 0x56], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x415e35
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x66cee0d5]
add eax, 0x2b
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov ecx, eax
or ecx, 0xd2
and eax, 0xd2
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x415df0
lea eax, [esp + 0x48]
push 3
push eax
push edi
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441c64]
mov word [esp + 0xa8], 0x6df1
mov dword [esp + 0xaa], 0
mov dword [esp + 0xad], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x415edf
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 + 0xa8]
lea edx, [eax + ecx]
add edx, 0x9831eb72
add eax, 0x9831eb72
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov ecx, eax
xor ecx, 0xe1
and eax, 0x61
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0xa8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x415e90
lea eax, [esp + 0xa8]
push 3
push eax
push edi
call fcn.00402a60
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esp + 0xec]
jmp dword [ecx*4 + 0x441c6c]
mov word [esp + 0x110], 0x31a5
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x11a], 0
mov byte [esp + 0x11e], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xe
ja 0x415fb5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + ecx]
add eax, 0xa8
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xcc7151a8
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x68
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xf
jb 0x415f60
lea ebx, [esp + 0x110]
push ebx
mov dword [esp + 0x3c], edi
push edi
call fcn.00402810
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0xc5b6
mov byte [esp + 0x112], 0x5a
mov dword [esp + 0x113], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 9
ja 0x416079
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx edx, byte [esp + ecx + 0x110]
lea edi, [eax + 0x143258c]
lea ecx, [eax + edx]
add ecx, 0x143258c
add eax, 0x8c
or eax, edi
and edi, edx
and eax, edx
add eax, edi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x2c
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xa
jb 0x416010
push ebx
push dword [esp + 0x3c]
call fcn.00402860
add esp, 8
fnstcw word [esp + 0xf2]
movzx eax, word [esp + 0xf2]
or eax, 0xc00
mov word [esp + 0xf6], ax
fldcw word [esp + 0xf6]
fistp dword [esp + 0x108]
fldcw word [esp + 0xf2]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x40], eax
mov word [esp + 0x110], 0x4de9
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 9
ja 0x416155
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
movzx edx, byte [esp + eax + 0x110]
lea eax, [ecx + 0x76]
and eax, edx
mov edi, 0x31923689
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, eax
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x48]
add al, 0xc6
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xa
jb 0x416100
push ebx
push dword [esp + 0x3c]
call fcn.00402860
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x416170
fnstcw word [esp + 0xf0]
movzx ecx, word [esp + 0xf0]
or ecx, 0xc00
mov word [esp + 0xf4], cx
fldcw word [esp + 0xf4]
fistp dword [esp + 0x104]
fldcw word [esp + 0xf0]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 8], ebx
test eax, eax
jle 0x416220
mov esi, edx
add esi, eax
xor edi, edi
lea eax, [esp + 0x110]
mov dword [esp + 8], eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x416220
lea eax, [esp + 0x48]
push eax
push esi
push edx
mov ebx, edx
call fcn.0040ec40
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 8]
mov word [edx], cx
add edx, 2
mov dword [esp + 8], edx
cmp edi, 0x3fd
ja 0x416220
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x416259
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov word [eax], 0
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x3c]
push eax
push ecx
lea eax, [esp + 0x118]
push eax
call fcn.0040bae0
add esp, 0xc
movzx ecx, al
mov eax, 4
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xec]
jmp dword [ecx*4 + 0x441c84]
mov ecx, dword [case.0x4150e4.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x4150e4.13]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x441e34]
mov eax, dword [case.0x4150e4.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x441c94]
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
mov dword [esp + 8], 0
xor edi, edi
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x441c9c]
mov edi, dword [esp + 0x38]
jmp dword [0x441ca4]
push ebx
push esi
call fcn.00402ac0
add esp, 8
mov edi, eax
mov word [esp + 0x110], 0x31c5
mov dword [esp + 0x112], 0
mov dword [esp + 0x115], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 8
ja 0x41639f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x7c938578]
add eax, 0x78
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0xb7
and eax, 0xb7
add eax, ecx
inc al
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 9
jb 0x416340
jmp dword [0x441c54]
push ebx
push esi
call fcn.00402ac0
add esp, 8
mov word [esp + 0x110], 0x31c5
mov dword [esp + 0x112], 0
mov dword [esp + 0x115], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 8
ja case.0x4134df.43
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x7c938578]
add eax, 0x78
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0xb7
and eax, 0xb7
add eax, ecx
inc al
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 9
jb 0x4163f0
jmp case.0x4134df.43
push esi
call fcn.00402ab0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x441c34]
mov eax, dword [case.0x4134df.31]
nop
nop
nop
nop
mov bl, 1
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret