Function at 0x413442
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x441b04]
mov dword [esp + 0xd0], 0xa3e73bf8
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd7], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xa
ja 0x40f706
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx esi, byte [esp + edx + 0xd0]
lea edx, [eax + esi]
add edx, 0x6c1fe49b
add eax, 0x6c1fe49b
and eax, esi
add eax, eax
mov esi, edx
not esi
and esi, eax
not eax
and eax, edx
sub eax, esi
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x260]
add al, 0xc3
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x40f6b0
mov edx, dword [str.MeHdy4__p8]
mov dword [esp + 0x260], 0xbe766261
mov dword [esp + 0x264], 0x6e656076
mov dword [esp + 0x268], 0x66556c7e
mov dword [esp + 0x26c], 0x6e7d7e69
mov dword [esp + 0x270], 0x65b47477
mov dword [esp + 0x274], 0xa3ab6771
mov dword [esp + 0x278], 0x77bca9b6
mov dword [esp + 0x27c], 0x9fa37975
mov dword [esp + 0x280], 0
mov dword [esp + 0x283], 0
mov dword [esp + 0xa60], 0
mov eax, dword [esp + 0xa60]
cmp eax, 0x26
ja 0x40f7ff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa60]
mov esi, dword [esp + 0xa60]
movzx esi, byte [esp + esi + 0x260]
lea edi, [eax - 0x3dc6f040]
lea ebx, [eax + 0xc0]
xor ebx, edi
and edi, esi
and ebx, esi
add eax, esi
add eax, 0xc2390fc0
lea esi, [ebx + edi*2]
sub eax, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xc0
mov esi, dword [esp + 0xa60]
mov byte [esp + esi + 0x260], al
inc dword [esp + 0xa60]
mov eax, dword [esp + 0xa60]
cmp eax, 0x27
jb 0x40f7a0
movzx ebx, byte [esp + 0x260]
lea eax, [esp + 0xa60]
test bl, bl
je 0x40f82b
lea esi, [esp + 0x261]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f820
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f84b
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 0x40f840
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f87b
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f870
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f89b
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 0x40f890
mov byte [eax], 0
lea ecx, [esp + 0xa60]
mov dword [esp + 0x260], 0xeba515d3
mov dword [esp + 0x264], 0xef5ce958
mov dword [esp + 0x268], 0xe35eed55
mov dword [esp + 0x26c], 0xe713e156
mov dword [esp + 0x270], 0xfb6be532
mov dword [esp + 0x274], 0xff43f94a
mov dword [esp + 0x278], 0xf31cfd30
mov dword [esp + 0x27c], 0xf740f155
mov dword [esp + 0x280], 0xcb48f546
mov dword [esp + 0x284], 0xcf6dc975
mov dword [esp + 0x288], 0xc378cd69
mov dword [esp + 0x28c], 0xc771c17d
mov dword [esp + 0x290], 0xdb35c574
mov dword [esp + 0x294], 0xdf2bd952
mov dword [esp + 0x298], 0xd355dd57
mov dword [esp + 0x29c], 0xd723d15b
mov dword [esp + 0x2a0], 0xab65d56c
mov dword [esp + 0x2a4], 0xaf1ba91c
mov dword [esp + 0x2a8], 0xa327ad5d
mov dword [esp + 0x2ac], 0xa71ca114
mov dword [esp + 0x2b0], 0xbb16a51d
mov dword [esp + 0x2b4], 0xbf09b91f
mov dword [esp + 0x2b8], 0xb307bd1a
mov dword [esp + 0x2bc], 0xb7a3b116
mov dword [esp + 0x2c0], 0x8bb4b5a8
mov dword [esp + 0x2cc], 0
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2c4], 0
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x6f
ja 0x40fa51
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edi, byte [esp + edx + 0x260]
lea edx, [esi + edi]
add edx, 0x1778297d
add esi, 0x1778297d
mov ebx, edi
not ebx
or ebx, esi
add ebx, edi
and esi, edi
add esi, ebx
inc esi
mov edi, esi
xor edi, edx
not esi
and esi, edx
add esi, esi
sub esi, edi
mov dword [esp + 0xd0], esi
mov edx, dword [esp + 0xd0]
add dl, 0x95
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x260], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x70
jb 0x40f9f0
sub eax, ecx
mov dword [esp + 0xd0], 0xfb1bf917
mov dword [esp + 0xd4], 0xff67fd6a
mov word [esp + 0xd8], 0xf1fe
mov dword [esp + 0xde], 0
mov dword [esp + 0xda], 0
mov dword [esp + 0x1d0], 0
mov edx, dword [esp + 0x1d0]
cmp edx, 0x11
ja 0x40faf6
mov edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx + 0x9f]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0xa859949f
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
add dl, 0xa7
mov esi, dword [esp + 0x1d0]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d0]
cmp edx, 0x12
jb case.default.0x40fb28
lea edx, [esp + 0xc8]
lea esi, [esp + 0xbc]
lea edi, [esp + 0x260]
lea ebx, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x4476bc
call fcn.0040c8e0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x442674]
xor esi, esi
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44267c]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xbc]
lea eax, [ecx + ecx*2]
shr eax, 2
mov edx, ecx
xor edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
lea edx, [edx + esi*2]
cmp byte [edi + edx + 1], 0x3d
je 0x40fb7c
cmp byte [ecx + edi - 1], 0x2e
jne 0x40fb7d
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40fb8c
cmp ecx, 0x2e
jne 0x40fb8d
dec eax
push eax
call fcn.00409200
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00434e90
add esp, 8
push dword [esp + 0xbc]
call fcn.00437d10
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
lea edi, [esp + 0x260]
jmp dword [ecx*4 + 0x44267c]
mov dword [esp + 0x14], ecx
push esi
call fcn.00401f10
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0x442684]
push esi
call fcn.00409210
add esp, 4
push dword [esp + 0x2c]
call fcn.004029f0
add esp, 4
mov dword [esp + 0x14], eax
mov word [esp + 0x260], 0x6610
mov byte [esp + 0x262], 0xf8
mov dword [esp + 0x263], 0
mov dword [esp + 0x267], 0
mov word [esp + 0x26b], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40fc88
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax + 0x3f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc937653f
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x47
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb case.default.0x40fc9c
push edi
push dword [esp + 0x18]
call fcn.00402b50
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44268c]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x442694]
mov eax, dword [case.0x40fd88.4]
mov esi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4426b0]
mov dword [esp + 0x260], 0xab949596
mov dword [esp + 0x264], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xf
ja 0x40fd76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax - 0x310523c3]
lea esi, [eax + 0x3d]
mov edi, edx
and edi, esi
and edi, ecx
xor edx, esi
and edx, ecx
add eax, ecx
add eax, 0xcefadc3d
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x55
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
mov eax, dword [esp + 0x30]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp eax, 0x10
jb 0x40fd10
push dword [esp + 0x260]
call fcn.00434530
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x442694]
jmp dword [0x4426cc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x260], 0xba1a3a0
mov dword [esp + 0x264], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40fe21
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax + ecx]
add eax, 0xaa
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xac8080aa
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x5a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x260], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40fde0
lea eax, [esp + 0x260]
push eax
push dword [esp + 0x18]
call fcn.00402b50
add esp, 8
mov dword [esp + 0x260], 0xba1a3a0
mov dword [esp + 0x264], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40feb1
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax + ecx]
add eax, 0xaa
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xac8080aa
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x5a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x260], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40fe70
push esi
push dword [esp + 0x18]
call fcn.00402b50
add esp, 8
jmp dword [0x442704]
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44270c]
xor eax, eax
cmp dword [esp + 0xc0], 0
setg al
lea edi, [esp + 0x260]
jmp dword [eax*4 + 0x442724]
jmp dword [0x442730]
push 0
call fcn.0043b180
add esp, 4
nop
nop
nop
push 0
call fcn.0043b180
add esp, 4
jmp dword [0x442738]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44273c]
mov dword [esp + 0x30], 0x4bc75533
mov dword [esp + 0x34], 0x4f1a492e
mov dword [esp + 0x38], 0x43c44dd5
mov dword [esp + 0x3c], 0x476041d9
mov dword [esp + 0x40], 0x7bd14560
mov dword [esp + 0x44], 0x7f1f79ee
mov dword [esp + 0x48], 0x73e87de8
mov dword [esp + 0x4c], 0x77217152
mov dword [esp + 0x50], 0x6beb75e5
mov dword [esp + 0x54], 0x6f4869f8
mov dword [esp + 0x58], 0x63ff6d0b
mov dword [esp + 0x5c], 0x67326106
mov dword [esp + 0x60], 0x9bec65fd
mov dword [esp + 0x64], 0x9fb89901
mov dword [esp + 0x68], 0x93cd9db8
mov dword [esp + 0x6c], 0x97b091f7
mov dword [esp + 0x70], 0x8b0b9502
mov dword [esp + 0x74], 0x8f138919
mov dword [esp + 0x78], 0x83078d1f
mov dword [esp + 0x7c], 0x87a08116
mov dword [esp + 0x80], 0xbb1085d7
mov dword [esp + 0x84], 0xbfedb99a
mov dword [esp + 0x88], 0xb3edbd9e
mov dword [esp + 0x8c], 0xb721b120
mov dword [esp + 0x90], 0xab22b5d0
mov dword [esp + 0x94], 0xafcfa931
mov dword [esp + 0x98], 0xa38cad33
mov dword [esp + 0x9c], 0xa780a1f8
mov dword [esp + 0xa0], 0xdb3fa5c2
mov dword [esp + 0xa4], 0xdff8d946
mov dword [esp + 0xa8], 0xd3dcddf8
mov dword [esp + 0xb3], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x86
ja 0x4100bc
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, ecx
and esi, 0xf489a34d
xor ecx, 0x7489a34d
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0x260]
add cl, 0xe5
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x87
jb 0x410070
movzx ecx, word [esp + 0x30]
test cx, cx
je 0x4100f1
lea edi, [esp + 0x260]
lea edx, [esp + 0x32]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4100e0
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x410121
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x410110
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0xd3a7a30
push dword [0x4489c4]
call fcn.0043b2c0
add esp, 8
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x260]
push ecx
push ebx
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 + 0x442744]
mov eax, dword [esp + 0x1c]
mov dword [esp], 0x42414047
mov dword [esp + 4], 0
mov dword [esp + 7], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0xa
ja 0x410285
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]
lea esi, [ecx + edx]
add esi, 0xe27579cb
add ecx, 0xe27579cb
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xcc], esi
mov ecx, dword [esp + 0xcc]
add cl, 0x73
mov edx, dword [esp + 0x18]
mov byte [esp + edx], cl
mov ecx, dword [esp + 0x18]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
cmp ecx, 0xb
jb 0x410230
mov ecx, dword [0x4489d0]
test ecx, ecx
je case.0x410fac.14
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x4489d4]
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4104aa
inc esi
cmp ecx, esi
jne 0x4102a0
jmp case.0x410fac.14
jmp dword [0x442714]
lea ecx, [esp + 0x260]
push 1
call fcn.004099f0
mov eax, 0xffffffff
cmp byte [eax + 0x4479c5], 0
lea eax, [eax + 1]
jne 0x4102d0
lea eax, [eax + 0x4479c4]
mov ecx, 0x4479c4
not ecx
mov edx, eax
and edx, ecx
xor ecx, eax
lea eax, [ecx + edx*2]
inc eax
mov dword [esp + 0x30], 0x16e4e8c8
mov dword [esp + 0x34], 0xf12d31b
mov word [esp + 0x38], 0x8510
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x11
ja 0x410385
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
mov esi, ecx
and esi, 0xfbc8d996
xor ecx, 0x7bc8d996
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
or edx, 0xe5
and ecx, 0xe5
add ecx, edx
inc cl
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x12
jb 0x410330
lea esi, [esp + 0x260]
mov ecx, esi
push eax
push 0x4479c4
push ebx
call fcn.00409c00
mov ecx, esi
call fcn.0040a3d0
mov ecx, esi
call fcn.00409a30
jmp case.0x410fac.10
lea eax, [eax + ecx*2]
inc eax
lea esi, [esp + 0x260]
mov ecx, esi
push eax
push 0x4479c4
push ebx
call fcn.00409c00
mov ecx, esi
call fcn.0040a3d0
mov ecx, esi
call fcn.00409a30
jmp dword [0x442720]
lea ecx, [esp + 0x260]
push 1
call fcn.004099f0
mov eax, 0xffffffff
cmp byte [eax + 0x4479c5], 0
lea eax, [eax + 1]
jne 0x4103f0
lea edx, [eax + 0x4479c4]
mov eax, 0x4479c4
not eax
mov ecx, edx
and ecx, eax
xor eax, edx
mov dword [esp + 0x30], 0x16e4e8c8
mov dword [esp + 0x34], 0xf12d31b
mov word [esp + 0x38], 0x8510
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
cmp edx, 0x11
ja 0x4103b0
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
movzx esi, byte [esp + esi + 0x30]
mov edi, edx
and edi, 0xfbc8d996
xor edx, 0x7bc8d996
lea edx, [edx + edi*2]
mov edi, edx
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
mov dword [esp], edx
mov edx, dword [esp]
mov esi, edx
or esi, 0xe5
and edx, 0xe5
add edx, esi
inc dl
mov esi, dword [esp + 0x1c]
mov byte [esp + esi + 0x30], dl
inc dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
cmp edx, 0x12
jb 0x410450
jmp 0x4103b0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x410fac.14
push eax
push 1
push dword [0x4489d8]
push ecx
call fcn.004398f0
add esp, 0x10
lea ecx, [esp + 0xae0]
call fcn.00409a30
lea ecx, [esp + 0xb48]
call fcn.00409a30
lea ecx, [esp + 0xbb0]
call fcn.00409a30
lea ecx, [esp + 0xc18]
call fcn.00409a30
lea ecx, [esp + 0xc80]
call fcn.00409a30
lea ecx, [esp + 0x1d0]
call fcn.00409a30
mov al, 1
jmp case.0x40fbc1.1
mov word [esp + 0x260], 0x292d
mov byte [esp + 0x262], 0xf2
mov dword [esp + 0x263], 0
mov dword [esp + 0x267], 0
mov word [esp + 0x26b], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x4105ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax + 0xbe]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xeb35d9be
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0xce
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x410560
lea edi, [esp + 0x260]
push edi
push dword [esp + 0x18]
call fcn.00402b50
add esp, 8
mov dword [esp + 0xc0], eax
mov word [esp + 0x260], 0x2e23
mov byte [esp + 0x262], 0xd4
mov dword [esp + 0x263], 0
mov word [esp + 0x267], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 8
ja 0x410652
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax - 0x3653b463]
mov esi, edx
and esi, ecx
xor edx, ecx
add eax, 0x9d
and eax, ecx
lea ecx, [edx + esi*2]
add eax, eax
sub ecx, eax
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xd0]
add al, 0xb5
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 9
jb 0x410600
push edi
mov esi, dword [esp + 0x18]
push esi
call fcn.00402b50
add esp, 8
mov edi, eax
push esi
call fcn.00410ff0
add esp, 4
push dword [esp + 0x2c]
call fcn.00402fc0
add esp, 4
lea esi, [esp + 0x1d0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.0041e8c0
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xc80]
mov ecx, esi
push 3
call fcn.004099f0
push esi
call fcn.0041f070
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xc18]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.0041f2b0
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xbb0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.004213f0
add esp, 4
push esi
call fcn.00421de0
add esp, 4
push esi
call fcn.00422280
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xb48]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.00424450
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xae0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.00426530
add esp, 4
push esi
call fcn.0042f160
add esp, 4
jmp dword [0x4426d8]
mov word [esp + 0x260], 0x292d
mov byte [esp + 0x262], 0xf2
mov dword [esp + 0x263], 0
mov dword [esp + 0x267], 0
mov word [esp + 0x26b], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
lea edi, [esp + 0x260]
ja 0x4107eb
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax + 0xbe]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xeb35d9be
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0xce
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x4107a0
push edi
push dword [esp + 0x18]
call fcn.00402b50
add esp, 8
mov word [esp + 0x260], 0x2e23
mov byte [esp + 0x262], 0xd4
mov dword [esp + 0x263], 0
mov word [esp + 0x267], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 8
ja 0x410882
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x260]
lea edx, [eax - 0x3653b463]
mov esi, edx
and esi, ecx
xor edx, ecx
add eax, 0x9d
and eax, ecx
lea ecx, [edx + esi*2]
add eax, eax
sub ecx, eax
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xd0]
add al, 0xb5
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x260], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 9
jb 0x410830
push edi
mov esi, dword [esp + 0x18]
push esi
call fcn.00402b50
add esp, 8
push esi
call fcn.00410ff0
add esp, 4
push dword [esp + 0x2c]
call fcn.00402fc0
add esp, 4
lea esi, [esp + 0x1d0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.0041e8c0
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xc80]
mov ecx, esi
push 3
call fcn.004099f0
push esi
call fcn.0041f070
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xc18]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.0041f2b0
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xbb0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.004213f0
add esp, 4
push esi
call fcn.00421de0
add esp, 4
push esi
call fcn.00422280
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xb48]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.00424450
add esp, 4
mov ecx, esi
call fcn.0040a3d0
lea esi, [esp + 0xae0]
mov ecx, esi
push 1
call fcn.004099f0
push esi
call fcn.00426530
add esp, 4
push esi
call fcn.0042f160
add esp, 4
jmp case.0x40fd88.14
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x4426dc]
push esi
call fcn.0042f370
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a3d0
lea eax, [esp + 0x23f]
push eax
call fcn.00434920
add esp, 4
mov dword [esp + 0x30], 0x849d8d4c
mov word [esp + 0x34], 0x6a8e
mov byte [esp + 0x36], 0x28
mov dword [esp + 0x37], 0
mov dword [esp + 0x3b], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xf
ja 0x410a57
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx edx, byte [esp + ecx + 0x30]
mov ecx, 0xe913a17a
sub ecx, eax
add eax, 0x85
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x260], ecx
mov eax, dword [esp + 0x260]
add al, 0x5d
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0x10
jb 0x410a00
mov eax, dword [0x441b04]
mov dword [esp], 0x63bfcb86
mov dword [esp + 4], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 7
ja 0x410aea
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx]
lea esi, [ecx - 0x7df91470]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x8206eb8f
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0x260]
add cl, 0x10
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 8
jb 0x410a90
mov ecx, dword [str.MeHdy4__p8]
mov dword [esp + 0x260], 0xe4acbcc5
mov dword [esp + 0x264], 0x3e5042bb
mov dword [esp + 0x268], 0x56554649
mov dword [esp + 0x26c], 0x94b4c39
mov dword [esp + 0x270], 0x14424e58
mov dword [esp + 0x274], 0x111c1b1e
mov dword [esp + 0x278], 0xc54525a
mov byte [esp + 0x27c], 0xca
mov dword [esp + 0x27d], 0
mov word [esp + 0x281], 0
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
cmp edx, 0x22
ja 0x410bbe
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
movzx esi, byte [esp + esi + 0x260]
lea edi, [edx + esi]
add edi, 0xb4a866fb
add edx, 0xb4a866fb
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xd0]
add dl, 0x23
mov esi, dword [esp + 0x1c]
mov byte [esp + esi + 0x260], dl
inc dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
cmp edx, 0x23
jb 0x410b70
movzx edx, byte [esp + 0x260]
test dl, dl
je 0x410beb
lea ebx, [esp + 0xd0]
lea esi, [esp + 0x261]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x410be0
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
lea edi, [esp + 0x260]
je 0x410c0b
inc ecx
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410c00
mov byte [ebx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x410c2b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410c20
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x410c4b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x410c40
mov byte [ebx], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x410c6b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x410c60
mov byte [ebx], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x410c9b
lea ecx, [esp + 0x240]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x410c90
mov byte [ebx], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x260], 0xc375c50b
mov dword [esp + 0x264], 0xcf7cc170
mov dword [esp + 0x268], 0xcb7ecd65
mov dword [esp + 0x26c], 0xd73bc976
mov dword [esp + 0x270], 0xd353d50a
mov dword [esp + 0x274], 0xdf7bd162
mov dword [esp + 0x278], 0xdb3cdd18
mov dword [esp + 0x27c], 0xa768d975
mov dword [esp + 0x280], 0xa310a516
mov dword [esp + 0x284], 0xaf0da115
mov dword [esp + 0x288], 0xab10ad01
mov dword [esp + 0x28c], 0xb719a91d
mov dword [esp + 0x290], 0xb345b504
mov dword [esp + 0x294], 0xbf43b10a
mov dword [esp + 0x298], 0xbb05bd07
mov dword [esp + 0x29c], 0x874bb903
mov dword [esp + 0x2a0], 0x8335852c
mov dword [esp + 0x2a4], 0x8f33813c
mov dword [esp + 0x2a8], 0x8b378d7d
mov dword [esp + 0x2ac], 0x973c8934
mov dword [esp + 0x2b0], 0x9326953d
mov dword [esp + 0x2b4], 0x9f21913f
mov dword [esp + 0x2b8], 0x9b379d32
mov dword [esp + 0x2bc], 0x678b9936
mov dword [esp + 0x2c0], 0x63646570
mov byte [esp + 0x2c8], 0
mov dword [esp + 0x2c4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x68
ja 0x410e30
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x260]
mov esi, ecx
and esi, 0xd4e4c9a1
xor ecx, 0xd4e4c9a1
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
or edx, 0x98
and ecx, 0x98
add ecx, edx
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x260], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x69
jb 0x410de0
sub ebx, eax
mov dword [esp + 0x30], 0xf313cd1f
mov dword [esp + 0x34], 0xf71ff160
mov word [esp + 0x38], 0xf5f4
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x17
ja 0x410ebf
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x32d08c9e]
add ecx, 0x9e
or ecx, esi
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0xae
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x18
jb 0x410e80
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xb8]
lea esi, [esp + 0x30]
push ecx
push edx
push ebx
push eax
push edi
mov ebx, esi
push esi
push 0x4476bc
call fcn.0040c8e0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4426e4]
xor edi, edi
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4426ec]
push edi
call fcn.00401f10
add esp, 4
mov esi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4426f4]
push edi
call fcn.00409210
add esp, 4
push esi
call fcn.00414530
add esp, 4
push esi
call fcn.00402fc0
add esp, 4
lea esi, [esp + 0x260]
jmp dword [0x442700]
mov ecx, dword [esp + 0xc4]
mov esi, dword [esp + 0xb8]
lea eax, [ecx + ecx*2]
shr eax, 2
mov edx, ecx
xor edx, 0xfffffffe
mov edi, ecx
and edi, 0xfffffffe
lea edx, [edx + edi*2]
cmp byte [esi + edx + 1], 0x3d
je 0x410f70
cmp byte [ecx + esi - 1], 0x2e
jne 0x410f71
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
je 0x410f80
cmp ecx, 0x2e
jne 0x410f81
dec eax
push eax
call fcn.00409200
add esp, 4
mov edi, eax
push eax
push esi
call fcn.00434e90
add esp, 8
push dword [esp + 0xb8]
call fcn.00437d10
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4426ec]
lea esi, [esp + 0x260]
jmp dword [0x442700]
xor eax, eax
jmp dword [0x4426c8]
mov ecx, dword [case.0x410fac.27]
nop
nop
jmp ecx
push esi
call fcn.00402fc0
add esp, 4
push esi
call fcn.00402fc0
add esp, 4
jmp dword [0x4426b4]
xor edi, edi
mov dword [esp + 0x158], esi
jmp 0x4110af
push esi
call fcn.00402f80
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x442764]
mov dword [esp + 0x15c], edi
push edi
push esi
call fcn.00402f90
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0x59c4
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov byte [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41114e
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x83ccd34]
add eax, 0xcc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x6c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x411110
push 3
push ebx
push edi
call fcn.00402e60
add esp, 0xc
xor edx, edx
test eax, eax
sete dl
mov eax, 1
xor ecx, ecx
jmp dword [edx*4 + 0x44276c]
mov word [esp + 0x38], 0xb1c4
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov byte [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4111f6
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 + 0x38]
mov edx, eax
and edx, 0xda1311b8
xor eax, 0x5a1311b8
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xf8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x4111b0
push ebx
push edi
call fcn.004028d0
add esp, 8
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x156], ax
fldcw word [esp + 0x156]
fistp dword [esp + 0x170]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x170]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x442774]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44277c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442784]
mov word [esp + 0x38], 0xd77
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4112e1
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x240e0502
add eax, 0x240e0502
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xf2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4112a0
push 2
push ebx
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x44282c]
mov word [esp + 0xf0], 0xf996
mov dword [esp + 0xf2], 0
mov dword [esp + 0xf6], 0
mov dword [esp + 0xfa], 0
mov byte [esp + 0xfe], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xe
ja 0x411391
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax - 0x2ae66581]
add eax, 0x7f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0x87
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jb 0x411350
push 2
lea eax, [esp + 0xf4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442834]
jmp dword [0x442840]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44278c]
mov word [esp + 0x38], 0x59e8
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411444
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xb4]
and edx, ecx
mov esi, 0xfe494a4b
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xf0], esi
mov eax, dword [esp + 0xf0]
add al, 0x14
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411400
push ebx
push edi
call fcn.00402790
add esp, 8
mov ebx, eax
mov word [esp + 0x38], 0xb13a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4114d7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x3a5cae48]
add eax, 0x48
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 7
and eax, 7
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411490
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00402790
add esp, 8
xor ecx, ecx
test ebx, ebx
sete cl
jmp dword [ecx*4 + 0x442964]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44296c]
mov dword [esp + 0x24], eax
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne 0x411510
mov dword [esp + 0x1c], eax
mov eax, ebx
not eax
and eax, edx
add eax, eax
xor edx, ebx
sub eax, edx
mov edx, ebx
add edx, eax
xor esi, esi
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x14], edx
jle 0x41157b
cmp byte [ebx], 0
je 0x41157b
xor esi, esi
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push edi
call fcn.0040f4b0
mov edx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [edi + eax]
inc esi
cmp ecx, edx
jae 0x41157b
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411550
mov eax, esi
and eax, 1
mov ecx, esi
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x411594
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
jbe 0x4120a4
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x2c], 0
jle 0x4120a4
mov esi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4120a4
lea eax, [esp + 0x38]
push eax
push edi
push ebx
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x28]
jae 0x4120a0
add ebx, eax
cmp ebx, edi
mov ecx, dword [esp + 0x24]
jb 0x4115e0
jmp 0x4120a4
mov word [esp + 0x38], 0x39c6
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411691
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 + 0x38]
lea edx, [eax + ecx]
add edx, 0xdacff877
add eax, 0xdacff877
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xbf
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411650
push ebx
push edi
call fcn.00402790
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x38], 0x4dca
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41170e
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0xc1cd876]
add eax, 0x8a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x3a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4116d0
push ebx
push edi
call fcn.00402790
add esp, 8
mov edi, eax
xor eax, eax
mov edx, dword [esp + 0x14]
test edx, edx
sete al
jmp dword [eax*4 + 0x4429f4]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4429fc]
mov ecx, edx
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x411740
mov ecx, edx
not ecx
and ecx, eax
add ecx, ecx
xor eax, edx
sub ecx, eax
mov eax, edx
add eax, ecx
mov dword [esp + 0x1c], eax
xor esi, esi
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x4117ab
cmp byte [edx], 0
mov edx, dword [esp + 0x1c]
je 0x4117ab
xor esi, esi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push ebx
call fcn.0040f4b0
mov edx, dword [esp + 0x28]
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edx
jae 0x4117ab
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411780
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x4117b9
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jbe 0x41294a
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x34], 0
jle 0x41294a
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x28], edi
nop
nop
cmp byte [ebx], 0
je 0x41294a
lea edx, [esp + 0x38]
push edx
push ecx
push ebx
mov edi, ecx
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x412946
add ebx, eax
cmp ebx, edi
mov ecx, edi
mov edi, dword [esp + 0x28]
jb 0x411800
jmp 0x41294a
sete al
movzx eax, al
jmp dword [eax*4 + 0x442794]
mov word [esp + 0x38], 0x19a8
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4118cc
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 + 0x38]
lea edx, [eax + ecx]
add edx, 0x5adcb6fc
add eax, 0x5adcb6fc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0x1b
and eax, 0x1b
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411880
push 2
push ebx
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x44279c]
mov word [esp + 0xf0], 0x990d
mov dword [esp + 0xf6], 0
mov dword [esp + 0xf2], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 9
ja 0x411969
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax - 0x181803c]
add eax, 0xc4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xe0]
add al, 0xa4
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xa
jb 0x411920
push 5
lea eax, [esp + 0xf4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4427a4]
mov word [esp], 0x61fa
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 9], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xc
ja 0x411a00
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x70]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x250c4d70
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 0xf0
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xd
jb 0x4119c0
push 2
lea eax, [esp + 4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4427ac]
mov word [esp + 0xa0], 0xd944
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa6], 0
mov word [esp + 0xaa], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xb
ja 0x411ab6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx edx, byte [esp + ecx + 0xa0]
lea ecx, [eax + edx]
add ecx, 0x4f660e24
add eax, 0x4f660e24
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 4
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xc
jb 0x411a60
push 3
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4427b4]
movzx eax, bl
lea ebx, [esp + 0x38]
jmp dword [eax*4 + 0x4427bc]
mov word [esp + 0x38], 0x2dbc
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411b4c
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x63d1d4a6]
add eax, 0x5a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x8a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411b10
push ebx
push edi
call fcn.00402790
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x38], 0xc575
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411bce
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x59ffa3a1]
add eax, 0xa1
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x99
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411b90
push ebx
push edi
call fcn.00402a10
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x38], 0x1992
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411c4e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x2e78d284]
add eax, 0x84
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x64
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411c10
push ebx
push edi
call fcn.00402790
add esp, 8
mov dword [esp + 0xb4], eax
mov word [esp + 0x38], 0x117a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411cd1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add eax, 0x83
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x4625ce83
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x6b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411c90
push ebx
push edi
call fcn.004028d0
add esp, 8
fnstcw word [esp + 0xdc]
movzx eax, word [esp + 0xdc]
or eax, 0xc00
mov word [esp + 0x154], ax
fldcw word [esp + 0x154]
fistp dword [esp + 0x16c]
fldcw word [esp + 0xdc]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0x90ec
mov byte [esp + 0x3a], 4
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411d8e
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 + 0x38]
lea edx, [eax + 0x2af37ad5]
add eax, 0xd5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x2d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411d50
push ebx
push edi
call fcn.004028d0
add esp, 8
fnstcw word [esp + 0xda]
movzx eax, word [esp + 0xda]
or eax, 0xc00
mov word [esp + 0x152], ax
fldcw word [esp + 0x152]
fistp dword [esp + 0x168]
fldcw word [esp + 0xda]
mov eax, dword [esp + 0x168]
mov dword [esp + 0xb8], eax
mov word [esp + 0x38], 0xc1cc
mov byte [esp + 0x3a], 0x34
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411e4c
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 + 0x38]
lea edx, [eax + 0x787f7c79]
add eax, 0x79
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xb1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411e10
mov esi, ebx
push ebx
push edi
call fcn.00402b50
add esp, 8
mov dword [esp + 0xbc], eax
xor eax, eax
mov ecx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411e70
add eax, ecx
dec eax
mov edi, ecx
not edi
and edi, eax
add edi, edi
xor eax, ecx
sub edi, eax
mov edx, ecx
add edx, edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], edi
test edi, edi
mov ebx, edx
jle 0x411ed8
cmp byte [ecx], 0
je 0x411ed8
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x28]
nop
mov dword [esp + 0x38], 0
push esi
push edx
push edi
call fcn.0040f4b0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esp + 0x1c]
cmp ecx, ebx
jae 0x411ed8
mov edx, ebx
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411eb0
mov ecx, dword [esp + 0x1c]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x411eea
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov ecx, eax
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x1c]
lea eax, [ecx + eax*2]
mov edi, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
cmp eax, ecx
mov ecx, dword [esp + 0x28]
jbe 0x411f5f
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x2c], 0
jle 0x411f5f
mov esi, ebx
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411f5f
lea eax, [esp + 0x38]
push eax
push esi
push ecx
mov ebx, ecx
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x411f5f
add ebx, eax
cmp ebx, esi
mov ecx, ebx
jb 0x411f30
mov word [edi], 0
mov eax, esp
push eax
push 0
push 0
push dword [esp + 0x28]
push dword [esp + 0x34]
push 0
call dword [0x4489cc]
mov edi, dword [esp]
lea eax, [edi + edi]
test edi, edi
jns 0x411f8a
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push edi
mov dword [esp + 0x34], ecx
push ecx
push dword [esp + 0x28]
mov esi, dword [esp + 0x34]
push esi
push 0
call dword [0x4489cc]
jmp dword [0x4427c4]
push esi
call fcn.00409210
add esp, 4
mov edx, dword [esp + 0xb4]
mov ecx, edx
jmp 0x4142ea
mov eax, dword [case.0x4114ec.7]
lea ebx, [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [esp + 0xb4]
mov eax, edx
jmp 0x4142e2
mov word [esp + 0xc0], 0x8cb8
mov dword [esp + 0xc2], 0
mov dword [esp + 0xc6], 0
mov word [esp + 0xca], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xb
ja 0x41207b
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xc0]
lea edx, [eax + 0x70674c2b]
and edx, ecx
add eax, ecx
add eax, 0x70674c2b
add edx, edx
sub eax, edx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 0xd3
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xc
jb 0x412030
push 3
lea eax, [esp + 0xc4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
lea ebx, [esp + 0x38]
jmp dword [ecx*4 + 0x4427bc]
mov ecx, dword [esp + 0x24]
mov word [esi], 0
xor eax, eax
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4120b0
mov edi, dword [esp + 0x1c]
add eax, edi
dec eax
mov edx, edi
not edx
and edx, eax
add edx, edx
xor eax, edi
sub edx, eax
add edi, edx
mov dword [esp + 0x1c], edi
xor esi, esi
mov dword [esp + 0x28], edx
test edx, edx
jle 0x41211b
cmp byte [ecx], 0
je 0x41211b
xor esi, esi
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
mov edi, dword [esp + 0x20]
push edi
push ebx
call fcn.0040f4b0
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x41211b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4120f0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412129
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x24]
jbe 0x41218f
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x28], 0
jle 0x41218f
mov esi, dword [esp + 0x2c]
nop
nop
cmp byte [ebx], 0
je 0x41218f
lea eax, [esp + 0x38]
push eax
mov edi, dword [esp + 0x20]
push edi
push ebx
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x41218f
add ebx, eax
cmp ebx, edi
jb 0x412160
mov word [esi], 0
mov word [esp + 0x38], 0xf985
mov byte [esp + 0x3a], 0x62
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41221f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x8e8d7130
add eax, 0x8e8d7130
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0xaf
and eax, 0x2f
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4121d0
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.00402a10
add esp, 8
xor ecx, ecx
mov dword [esp + 0x28], eax
test eax, eax
setne cl
xor esi, esi
mov dword [esp + 0x14], 0
jmp dword [ecx*4 + 0x442984]
lea ebx, [esp + 0x38]
mov ecx, ebx
push 2
call fcn.004099f0
push dword [esp + 0x14]
push esi
push dword [esp + 0x34]
push dword [esp + 0x40]
push ebx
call fcn.00416970
add esp, 0x14
mov ecx, ebx
call fcn.0040a3d0
movzx eax, al
jmp dword [eax*4 + 0x4429a4]
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xaa], 0
cmp eax, 0x3ff
mov dword [esp + 0x24], esi
ja 0x41255e
mov byte [esp + 0xa9], 0x30
lea esi, [esp + 0xa9]
jmp 0x4125ea
push dword [esp + 0x28]
call fcn.00402f80
add esp, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x4122db
mov esi, eax
test dl, dl
jne 0x4122e1
mov ecx, esi
push ecx
call fcn.00409200
add esp, 4
mov esi, eax
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
add esi, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x44298c]
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
lea ecx, [esi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442994]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442994]
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x14]
setb al
mov dword [esp + 0x24], esi
jmp dword [eax*4 + 0x44299c]
lea eax, [esp + 0x38]
push eax
push esi
call fcn.00402b50
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [edi + edi*2]
mov esi, dword [esp + 0x24]
lea ecx, [esi + eax*4]
push edx
push dword [esp + 0x20]
push ebx
call fcn.004162e0
inc edi
xor eax, eax
cmp edi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x44299c]
push edi
push dword [esp + 0x2c]
call fcn.00402f90
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0xafb5
mov byte [esp + 0x3a], 0xda
lea eax, [esp + 0x3b]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x412441
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xc8d2ebdc
add eax, 0xc8d2ebdc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xfc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412400
lea ebx, [esp + 0x38]
push ebx
push esi
call fcn.00402790
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x38], 0x330d
mov byte [esp + 0x3a], 0xb4
lea eax, [esp + 0x3b]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4124c0
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x59d88a99]
and edx, ecx
add eax, ecx
add eax, 0x59d88a99
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xd1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x412480
push ebx
push esi
call fcn.00402790
add esp, 8
mov ebx, eax
mov dword [esp + 0x38], 0xf354a9a0
lea eax, [esp + 0x3b]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x412370
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xc1b9f6fe
add eax, 0xfe
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 + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412500
jmp 0x412370
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4429ac]
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xaa]
cmp eax, 0x19000
jb 0x4125be
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x412580
cmp edx, 9
ja 0x4125c5
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x4125ea
mov edx, ecx
cmp edx, 9
jbe 0x4125b1
mov eax, edx
and eax, 0xfffffffd
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov dword [esp], 0x6392abd3
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov word [esp + 0xc], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xd
ja 0x412670
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x44319c91]
add eax, 0x91
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 9
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xe
jb 0x412620
mov dword [esp + 0xf0], 0x7d7a6e63
mov dword [esp + 0xf4], 0x2f637f73
mov dword [esp + 0xf8], 0x7f7b6264
mov dword [esp + 0xfc], 0x6b286561
mov dword [esp + 0x100], 0x78693567
mov dword [esp + 0x104], 0x72307d60
mov dword [esp + 0x108], 0x686d6376
mov dword [esp + 0x10c], 0x476b626d
mov dword [esp + 0x110], 0x16090a16
mov dword [esp + 0x114], 0x13401d09
mov dword [esp + 0x118], 0x3104d1f
mov dword [esp + 0x11c], 0x1c154901
mov dword [esp + 0x120], 0xd1f0f08
mov dword [esp + 0x124], 0xe0c5146
mov dword [esp + 0x128], 0x5b081202
mov dword [esp + 0x12c], 0x3215160a
mov dword [esp + 0x130], 0x3e64392d
mov dword [esp + 0x134], 0x492b0735
mov word [esp + 0x138], 0x8d6e
mov word [esp + 0x142], 0
mov dword [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
cmp eax, 0x53
ja 0x4127eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
movzx edi, byte [esp + eax + 0xf0]
lea eax, [edx + 0xced5b21]
lea ecx, [edx + edi]
add ecx, 0xced5b21
add edx, 0x21
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 [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x19
mov ecx, dword [esp + 0xe0]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
cmp eax, 0x54
jb 0x412780
lea eax, [0x4479c3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412800
movzx ecx, byte [esp + 0xf0]
test cl, cl
je 0x412832
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xf1]
inc edx
test cl, cl
jne 0x412820
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x41284b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x412840
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x41286d
lea edx, [esp + 1]
mov esi, dword [esp + 0x24]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412860
jmp 0x412871
mov esi, dword [esp + 0x24]
mov byte [eax], 0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4429ac]
mov edx, esi
add esi, 0xfffffffc
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
mov ebx, edx
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4429b4]
lea ebx, [esp + 0x38]
jmp dword [0x4429c4]
push esi
call fcn.00409210
add esp, 4
jmp dword [0x4429d0]
jmp dword [0x4429d4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x4429bc]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x41290e
push eax
call fcn.00409210
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x4128f0
push eax
call fcn.00409210
add esp, 4
jmp 0x4128f0
jmp dword [0x4429ec]
mov edi, dword [esp + 0x28]
mov word [esi], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x412960
add eax, edi
dec eax
mov ebx, edi
not ebx
mov esi, eax
and esi, ebx
add esi, esi
xor eax, edi
sub esi, eax
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412988
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov ecx, eax
mov eax, esi
test edi, edi
jne 0x4129b3
mov eax, 0xffffffff
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x4129a0
and ebx, eax
add ebx, ebx
xor eax, edi
sub ebx, eax
mov eax, ebx
mov dword [esp + 0x38], 0
lea edx, [ecx + esi*2]
mov esi, ecx
mov dword [esp + 0x1c], edx
cmp edx, ecx
mov dword [esp + 0x30], ecx
jbe 0x412a0b
mov esi, ecx
test eax, eax
jle 0x412a0b
mov ebx, edi
add ebx, eax
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412a0b
lea eax, [esp + 0x38]
push eax
push ebx
push edi
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x412a0b
add edi, eax
cmp edi, ebx
jb 0x4129e0
mov word [esi], 0
mov word [esp + 0x38], 0x10d
mov byte [esp + 0x3a], 0x9a
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x43], 0
mov byte [esp + 0x47], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x412a96
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0xd634c8ec
xor eax, 0xd634c8ec
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x8c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412a50
lea ebx, [esp + 0x38]
push ebx
push dword [ebp + 8]
call fcn.00402a10
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], 0
jmp dword [ecx*4 + 0x442a04]
mov ecx, ebx
push 3
call fcn.004099f0
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
push esi
push dword [esp + 0x38]
push dword [esp + 0x38]
push ebx
call fcn.004192f0
add esp, 0x14
mov ecx, ebx
call fcn.0040a3d0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442a44]
push dword [esp + 0x24]
call fcn.00402f80
add esp, 4
mov ecx, eax
mov dword [esp + 0x28], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x412b94
mov esi, eax
test dl, dl
jne 0x412b9a
mov ecx, esi
push ecx
call fcn.00409200
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x14], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442a0c]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442a14]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442a14]
xor esi, esi
mov eax, dword [case.0x412ac1.8]
jmp case.0x412ac1.6
inc esi
mov eax, dword [case.0x412ac1.8]
lea ebx, [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp esi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x442a2c]
jmp dword [0x442a34]
mov dword [esp + 0x1c], esi
push esi
push dword [esp + 0x28]
call fcn.00402f90
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0x776d
mov byte [esp + 0x3a], 0xc4
lea eax, [esp + 0x3b]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x412ce0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xa1]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x84cd8da1
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x99
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x412ca0
lea ebx, [esp + 0x38]
push ebx
push esi
call fcn.00402790
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x38], 0xcb39
mov byte [esp + 0x3a], 0x40
lea eax, [esp + 0x3b]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x412d5d
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x67c3364b
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xf3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412d20
push ebx
push esi
call fcn.00402790
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0x7565
mov byte [esp + 0x3a], 2
lea eax, [esp + 0x3b]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x412deb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0x61d3d080
add eax, 0x61d3d080
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x80
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412da0
push ebx
push esi
call fcn.00402790
add esp, 8
mov esi, dword [esp + 0x1c]
lea ecx, [esi + esi*2]
mov edx, dword [esp + 0x14]
lea ecx, [edx + ecx*4]
push eax
push dword [esp + 0x38]
push edi
call fcn.00416490
jmp case.0x412ac1.12
lea eax, [esp + 0x38]
push eax
push esi
call fcn.00402790
add esp, 8
mov esi, dword [esp + 0x1c]
lea ecx, [esi + esi*2]
mov edx, dword [esp + 0x14]
lea ecx, [edx + ecx*4]
push eax
push edi
push ebx
call fcn.00416490
jmp dword [0x442a40]
mov dword [esp + 0x1c], esi
push esi
push dword [esp + 0x28]
call fcn.00402f90
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0x776d
mov byte [esp + 0x3a], 0xc4
lea eax, [esp + 0x3b]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x412ec0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xa1]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x84cd8da1
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x99
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x412e80
lea ebx, [esp + 0x38]
push ebx
push esi
call fcn.00402790
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0xcb39
mov byte [esp + 0x3a], 0x40
lea eax, [esp + 0x3b]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x412f3d
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x67c3364b
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xf3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412f00
push ebx
push esi
call fcn.00402790
add esp, 8
mov ebx, eax
mov word [esp + 0x38], 0x7565
mov byte [esp + 0x3a], 2
lea eax, [esp + 0x3b]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x412e10
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0x61d3d080
add eax, 0x61d3d080
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x80
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412f80
jmp 0x412e10
push edi
call fcn.00402f80
add esp, 4
jmp dword [0x4427d4]
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x4427dc]
mov dword [esp + 0x14], esi
push esi
push edi
call fcn.00402f60
add esp, 8
push eax
call fcn.004028b0
add esp, 4
mov esi, eax
xor edx, edx
test eax, eax
sete dl
mov eax, 1
xor ecx, ecx
jmp dword [edx*4 + 0x4427e4]
mov ecx, esi
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x413070
mov ebx, esi
not ebx
mov edi, eax
and edi, ebx
add edi, edi
xor eax, esi
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x413094
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov ecx, eax
mov eax, edi
test esi, esi
jne 0x4130c3
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x4130b0
and ebx, eax
add ebx, ebx
xor eax, esi
sub ebx, eax
mov eax, ebx
mov dword [esp + 0xf0], 0
lea edx, [ecx + edi*2]
mov edi, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
cmp edx, ecx
jbe 0x413121
mov edi, dword [esp + 0x24]
test eax, eax
jle 0x413121
mov ebx, esi
add ebx, eax
mov edi, dword [esp + 0x24]
nop
cmp byte [esi], 0
je 0x413121
lea eax, [esp + 0xf0]
push eax
push ebx
push esi
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0xf0]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x1c]
jae 0x413121
add esi, eax
cmp esi, ebx
jb 0x4130f0
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
mov word [edi], 0
push 0
push eax
push dword [esp + 0x38]
push dword [esp + 0xc4]
mov esi, dword [esp + 0x34]
push esi
push dword [esp + 0x40]
push dword [esp + 0x40]
lea ebx, [esp + 0x54]
push ebx
call fcn.0041b840
add esp, 0x20
xor eax, eax
mov ecx, 1
mov edi, dword [esp + 0x34]
jmp dword [0x4427ec]
jmp dword [ecx*4 + 0x4427f4]
push edi
call fcn.00402f80
add esp, 4
jmp case.0x412099.5
jmp dword [0x442814]
mov word [esp], 0x41b1
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xe
ja 0x413279
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x78c9b90b]
add eax, 0xb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xb3
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jb 0x413240
push 5
lea eax, [esp + 4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
mov word [esp], 0x41b1
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xe
ja 0x4132f9
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x78c9b90b]
add eax, 0xb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xb3
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jb 0x4132c0
push 5
lea eax, [esp + 4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
jmp dword [0x442844]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44284c]
jmp dword [0x442858]
mov word [esp + 0xa0], 0x55d8
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa6], 0
mov byte [esp + 0xaa], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xa
ja case.0x4113ab.9
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xa0]
lea edx, [eax + ecx]
add edx, 0x4a25ad0d
add eax, 0x4a25ad0d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xa5
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xb
jb 0x413360
jmp case.0x4113ab.9
jmp dword [0x442860]
mov word [esp + 0xa0], 0x55d8
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa6], 0
mov byte [esp + 0xaa], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xa
ja 0x4133b0
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xa0]
lea edx, [eax + ecx]
add edx, 0x4a25ad0d
add eax, 0x4a25ad0d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xa5
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xb
jb 0x4133f0
jmp 0x4133b0
mov eax, dword [case.0x4113ab.14]
jmp eax
push 2
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.00402e60
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442874]
movzx eax, bl
lea ebx, [esp + 0x38]
jmp dword [eax*4 + 0x442884]
mov edx, dword [case.0x411168.1]
mov esi, dword [esp + 0x158]
nop
nop
nop
xor eax, eax
mov ecx, 1
jmp edx
jmp dword [ecx*4 + 0x442a7c]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x4142ee
mov eax, ecx
jmp 0x4142e2
mov ecx, edx
not ecx
and ecx, eax
add ecx, ecx
xor eax, edx
sub ecx, eax
mov esi, edx
add esi, ecx
xor edi, edi
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x414347
cmp byte [edx], 0
je 0x414347
xor edi, edi
mov ebx, dword [esp + 0xb4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push ebx
call fcn.0040f4b0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x414347
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x414320
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x414355
mov eax, 0xffffffff
push eax
call fcn.00409200
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov ebx, dword [esp + 0xb4]
jbe 0x4143bb
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x14], 0
jle 0x4143bb
mov edi, dword [esp + 0x28]
nop
nop
nop
cmp byte [ebx], 0
je 0x4143bb
lea eax, [esp + 0x38]
push eax
push esi
push ebx
call fcn.0040f4b0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x1c]
jae 0x4143bb
add ebx, eax
cmp ebx, esi
jb 0x414390
mov word [edi], 0
lea ebx, [esp + 0x38]
mov ecx, ebx
push 1
call fcn.004099f0
xor esi, esi
mov edi, dword [esp + 0x34]
jmp dword [0x4427d0]
mov ecx, dword [0x442aa0]
nop
nop
nop
nop
jmp ecx