Function at 0x40fa12
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 [str.5716f8210a0744e3ba86f9d57d14207c]
mov dword [esp + 0xd0], 0x236f9356
mov dword [esp + 0xd4], 0
mov word [esp + 0xd8], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 9
ja 0x40f39b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [eax + 0x86]
and esi, edx
add eax, edx
add esi, esi
sub eax, esi
add eax, 0xc086
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0x56
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xa
jb 0x40f350
mov edx, dword [str.BVnUqo___hitok4111]
mov dword [esp + 0x2e0], 0xe4acbcc5
mov dword [esp + 0x2e4], 0x444142b0
mov dword [esp + 0x2e8], 0x4c394650
mov dword [esp + 0x2ec], 0x34595845
mov dword [esp + 0x2f0], 0x5d0e4e4f
mov dword [esp + 0x2f4], 0x30b5f4d
mov dword [esp + 0x2f8], 0x5f161918
mov dword [esp + 0x2fc], 0xc7035951
mov word [esp + 0x300], 0
mov byte [esp + 0x302], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x22
ja 0x40f485
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [eax + esi]
add edi, 0x904d6d7b
add eax, 0x904d6d7b
and eax, esi
add eax, eax
sub edi, eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
add al, 0xa3
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x23
jb 0x40f430
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40f4ab
lea esi, [esp + 0x2e1]
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f4a0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f4cb
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 0x40f4c0
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f4fb
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 0x40f4f0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f51b
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 0x40f510
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x1381115b
mov dword [esp + 0x2e4], 0x1f801d84
mov dword [esp + 0x2e8], 0x1b8e1971
mov dword [esp + 0x2ec], 0x7530586
mov dword [esp + 0x2f0], 0x39b017a
mov dword [esp + 0x2f4], 0xf630d92
mov dword [esp + 0x2f8], 0xb280954
mov dword [esp + 0x2fc], 0x37a43569
mov dword [esp + 0x300], 0x33a431a6
mov dword [esp + 0x304], 0x3f513d59
mov dword [esp + 0x308], 0x3ba4395d
mov dword [esp + 0x30c], 0x27b52551
mov dword [esp + 0x310], 0x237121b0
mov dword [esp + 0x314], 0x2f7b2dba
mov dword [esp + 0x318], 0x2bb129b7
mov dword [esp + 0x31c], 0x570355b3
mov dword [esp + 0x320], 0x53c15138
mov dword [esp + 0x324], 0x5fcb5dc0
mov dword [esp + 0x328], 0x5bc75909
mov dword [esp + 0x32c], 0x47d045c8
mov dword [esp + 0x330], 0x43d64129
mov dword [esp + 0x334], 0x4fdd4d2f
mov dword [esp + 0x338], 0x4b274922
mov dword [esp + 0x33c], 0x77437526
mov dword [esp + 0x340], 0x7370717c
mov dword [esp + 0x347], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x6a
ja 0x40f6c7
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx - 0x5db8b17d]
mov ebx, esi
not ebx
or ebx, edi
and edi, esi
add edx, esi
add edx, 0xa2474e83
add esi, ebx
inc esi
mov ebx, esi
and ebx, edi
xor edi, esi
lea esi, [edi + ebx*2]
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, 0x6b
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x6b
jb 0x40f660
sub eax, ecx
mov dword [esp + 0xd0], 0xbb5bb967
mov dword [esp + 0xd4], 0xbf57bd2a
mov word [esp + 0xd8], 0xa1be
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov dword [esp + 0xe2], 0
mov word [esp + 0xe6], 0
mov dword [esp + 0x1f8], 0
mov edx, dword [esp + 0x1f8]
cmp edx, 0x17
ja 0x40f786
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1f8]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx - 0x3bd98399]
and edi, esi
add edx, esi
add edx, 0xc4267c67
add edi, edi
sub edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
add dl, 0x2f
mov esi, dword [esp + 0x1f8]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
cmp edx, 0x18
jb 0x40f730
lea edx, [esp + 0xc8]
lea esi, [esp + 0xbc]
lea edi, [esp + 0x2e0]
lea ebx, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x448a04
call fcn.0040c660
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4436cc]
xor esi, esi
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4436d4]
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
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40f7fe
cmp edx, 0x2e
jne 0x40f7ff
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40f80e
cmp ecx, 0x2e
jne 0x40f815
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00409270
add esp, 4
mov esi, eax
push eax
push edi
call fcn.004357c0
add esp, 8
push dword [esp + 0xbc]
call fcn.00438bf0
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4436d4]
mov dword [esp + 0x10], eax
push esi
call fcn.00401e70
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x10]
jmp dword [eax*4 + 0x4436ec]
push esi
call fcn.00409280
add esp, 4
mov dword [esp + 0xb4], edi
push edi
call fcn.00402900
add esp, 4
mov dword [esp + 0x10], eax
mov word [esp + 0x2e0], 0x16
mov byte [esp + 0x2e2], 0x72
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov word [esp + 0x2eb], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xc
ja 0x40f935
nop
nop
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 + 0x2e0]
lea edx, [eax + 0x2c52c26e]
lea esi, [eax + 0x6e]
mov edi, edx
and edi, esi
and edi, ecx
xor edx, esi
and edx, ecx
add eax, ecx
add eax, 0x2c52c26e
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov ecx, eax
xor ecx, 0xfd
and eax, 0x7d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xd
jb 0x40f8d0
lea edi, [esp + 0x2e0]
push edi
push dword [esp + 0x14]
call fcn.00402a60
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4436f4]
xor eax, eax
jmp 0x40f9fb
jmp dword [0x4436e4]
mov dword [esp + 0x2e0], 0x13505156
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xa
ja 0x40f9ec
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + ecx]
add edx, 0x1a621ef3
add eax, 0x1a621ef3
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x5b
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xb
jb 0x40f9a0
push dword [esp + 0x2e0]
call fcn.00434cc0
add esp, 4
mov ecx, dword [case.0x40f950.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x44370c]
mov word [esp + 0x2e0], 0x3d25
mov byte [esp + 0x2e2], 0x80
mov dword [esp + 0x2e3], 0
mov word [esp + 0x2e7], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 8
ja 0x40faac
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 + 0x2e0]
lea edx, [eax + ecx]
add eax, 0xeb
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xa9f774eb
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x93
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 9
jb 0x40fa60
push edi
push dword [esp + 0x14]
call fcn.00402a60
add esp, 8
mov dword [esp + 0xb0], eax
mov word [esp + 0x2e0], 0xa0b3
mov byte [esp + 0x2e2], 0xa
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xe
ja 0x40fb6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
movzx esi, byte [esp + eax + 0x2e0]
lea eax, [edx + 0x6b16b3aa]
lea ecx, [edx + esi]
add ecx, 0x6b16b3aa
add edx, 0xaa
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x5a
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xf
jb 0x40fb10
push edi
mov esi, dword [esp + 0x14]
push esi
call fcn.00402a60
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xc0], ecx
push esi
call fcn.004108a0
add esp, 4
push dword [esp + 0xb4]
call fcn.00402ed0
add esp, 4
lea edi, [esp + 0x1f8]
mov ecx, edi
push 1
call fcn.00409ac0
push edi
call fcn.00420280
add esp, 4
mov ecx, edi
call fcn.0040a460
lea edi, [esp + 0xc80]
mov ecx, edi
push 3
call fcn.00409ac0
push edi
call fcn.00420a70
add esp, 4
mov ecx, edi
call fcn.0040a460
lea edi, [esp + 0xc18]
mov ecx, edi
push 1
call fcn.00409ac0
push edi
call fcn.00420cb0
add esp, 4
mov ecx, edi
call fcn.0040a460
lea edi, [esp + 0xbb0]
mov ecx, edi
push 1
call fcn.00409ac0
push edi
call fcn.00422ec0
add esp, 4
push edi
call fcn.004238f0
add esp, 4
push edi
call fcn.00423dc0
add esp, 4
mov ecx, edi
call fcn.0040a460
lea edi, [esp + 0xb48]
mov ecx, edi
push 1
call fcn.00409ac0
push edi
call fcn.00425d40
add esp, 4
mov ecx, edi
call fcn.0040a460
lea edi, [esp + 0xae0]
mov ecx, edi
push 1
call fcn.00409ac0
push edi
call fcn.00428540
add esp, 4
push edi
call fcn.0042fd50
add esp, 4
mov eax, dword [esp + 0xc0]
jmp dword [eax*4 + 0x443714]
push edi
call fcn.0042ff20
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a460
lea eax, [esp + 0x1d7]
push eax
call fcn.004350b0
add esp, 4
mov dword [esp + 0x28], 0xf10140
mov word [esp + 0x2c], 0x321e
mov byte [esp + 0x2e], 0x7c
mov dword [esp + 0x2f], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xb
ja 0x40fd42
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 ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0x6c1940ef]
add eax, 0xef
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2e0]
add al, 0x77
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0xc
jb 0x40fcf0
mov eax, dword [str.5716f8210a0744e3ba86f9d57d14207c]
mov dword [esp], 0x33f783cc
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xf
ja 0x40fdd4
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx]
lea esi, [ecx + 0x59]
and esi, edx
mov edi, 0xe32ee5a6
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x2e0], edi
mov ecx, dword [esp + 0x2e0]
add cl, 0x91
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 0x10
jb 0x40fd80
mov ecx, dword [str.BVnUqo___hitok4111]
mov dword [esp + 0x2e0], 0x14ecfcf5
mov dword [esp + 0x2e4], 0xfee0f2fb
mov dword [esp + 0x2e8], 0xe6e5f6e9
mov dword [esp + 0x2ec], 0xc90b0cf9
mov dword [esp + 0x2f0], 0xe4120e18
mov dword [esp + 0x2f4], 0xc1dcdbde
mov dword [esp + 0x2f8], 0xec04021a
mov byte [esp + 0x2fc], 0xaa
mov dword [esp + 0x301], 0
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x24
ja 0x40feaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0x73]
add edx, esi
and edi, esi
add edi, edi
sub edx, edi
add edx, 0xc05d7a73
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xd0]
add dl, 0xdb
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x18]
mov edx, dword [esp + 0x18]
cmp edx, 0x25
jb 0x40fe60
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x40fedb
lea ebx, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40fed0
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
lea edi, [esp + 0x2e0]
je 0x40fefb
inc ecx
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40fef0
mov byte [ebx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40ff1b
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 0x40ff10
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40ff3b
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 0x40ff30
mov byte [ebx], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40ff5b
lea ecx, [esp + 0x29]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ff50
mov byte [ebx], 0
movzx eax, byte [esp + 0x1d7]
test al, al
je 0x40ff8b
lea ecx, [esp + 0x1d8]
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 0x40ff80
mov byte [ebx], 0
lea eax, [esp + 0xd0]
sub ebx, eax
mov dword [esp + 0x2e0], 0x23b121db
mov dword [esp + 0x2e4], 0xdf50ddb4
mov dword [esp + 0x2e8], 0xdb4ed941
mov dword [esp + 0x2ec], 0xd703d556
mov dword [esp + 0x2f0], 0xd35bd13a
mov dword [esp + 0x2f4], 0xcf53cd42
mov dword [esp + 0x2f8], 0xcbe8c904
mov dword [esp + 0x2fc], 0xc754c529
mov dword [esp + 0x300], 0xc354c156
mov dword [esp + 0x304], 0xff61fd59
mov dword [esp + 0x308], 0xfb74f91d
mov dword [esp + 0x30c], 0xf765f561
mov dword [esp + 0x310], 0xf321f160
mov dword [esp + 0x314], 0xef3bed7a
mov dword [esp + 0x318], 0xeb61e967
mov dword [esp + 0x31c], 0xe733e563
mov dword [esp + 0x320], 0xe371e178
mov dword [esp + 0x324], 0x9f0b9d70
mov dword [esp + 0x328], 0x9b179949
mov dword [esp + 0x32c], 0x97009508
mov dword [esp + 0x330], 0x93069109
mov dword [esp + 0x334], 0x8f1d8d0f
mov dword [esp + 0x338], 0x8b178912
mov dword [esp + 0x33c], 0x87b38516
mov dword [esp + 0x340], 0x838081bc
mov dword [esp + 0x34b], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x6e
ja 0x41012d
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx + edx]
add esi, 0x54eeecfb
add ecx, 0x54eeecfb
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 0x23
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x6f
jb 0x4100e0
mov dword [esp + 0x28], 0x1bfb192f
mov dword [esp + 0x2c], 0x17ef15e4
mov word [esp + 0x30], 0x1110
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x17
ja 0x4101bd
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 - 0x55f8df2c]
add ecx, 0xd4
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x34
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x18
jb 0x410180
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xb8]
lea esi, [esp + 0x28]
push ecx
push edx
push ebx
mov ebx, esi
push eax
push edi
push esi
push 0x448a04
call fcn.0040c660
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44371c]
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443724]
push dword [esp + 0xb4]
call fcn.00402ed0
add esp, 4
xor eax, eax
jmp 0x410844
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x410237
cmp edx, 0x2e
jne 0x410238
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410247
cmp ecx, 0x2e
jne 0x41024e
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00409270
add esp, 4
mov esi, eax
push eax
push edi
call fcn.004357c0
add esp, 8
push dword [esp + 0xb8]
call fcn.00438bf0
add esp, 4
xor eax, eax
test esi, esi
setne al
lea edi, [esp + 0x2e0]
jmp dword [eax*4 + 0x443724]
push esi
call fcn.00401e70
add esp, 4
mov edi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44372c]
push esi
call fcn.00409280
add esp, 4
push edi
call fcn.00414210
add esp, 4
push edi
call fcn.00402ed0
add esp, 4
lea edi, [esp + 0x2e0]
mov dword [esp + 0x2e0], 0x6bf1f3f0
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
mov byte [esp + 0x2ec], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410341
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x2e0]
mov ecx, 0x24db73ad
sub ecx, eax
add eax, 0x52
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
add al, 0xc2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410300
push edi
push dword [esp + 0x14]
call fcn.00402a60
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x443734]
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x44373c]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409ac0
xor ecx, ecx
cmp byte [ecx + 0x448d0c], 0
lea ecx, [ecx + 1]
jne 0x410380
lea edx, [ecx + 0x448d0b]
mov esi, 0x448d0c
mov eax, 0x448d0c
not eax
and eax, edx
lea ecx, [ecx + 0x448d0c]
neg ecx
and ecx, esi
sub eax, ecx
mov dword [esp + 0x28], 0x36242040
mov dword [esp + 0x2c], 0x2f2a7b23
mov word [esp + 0x30], 0x9528
mov dword [esp + 0x32], 0
mov dword [esp + 0x35], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x10
ja 0x410435
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 + 0x4b52866a]
add ecx, 0x6a
or ecx, esi
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
mov edx, ecx
or edx, 0x19
and ecx, 0x19
add ecx, edx
inc cl
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x11
jb 0x4103f0
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x448d0c
push ebx
call fcn.00409cd0
mov ecx, esi
call fcn.0040a460
mov ecx, esi
call fcn.00409b00
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x44373c]
push 0
call fcn.0043c4e0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443744]
mov dword [esp + 0x28], 0xdb2fd93b
mov dword [esp + 0x2c], 0xe7d0e508
mov dword [esp + 0x30], 0xe31ae10d
mov dword [esp + 0x34], 0xefceed01
mov dword [esp + 0x38], 0xeb19e9ca
mov dword [esp + 0x3c], 0xf717f508
mov dword [esp + 0x40], 0xf30ef102
mov dword [esp + 0x44], 0xffc9fddc
mov dword [esp + 0x48], 0xfb13f90d
mov dword [esp + 0x4c], 0x87a68572
mov dword [esp + 0x50], 0x83778163
mov dword [esp + 0x54], 0x8fb88d60
mov dword [esp + 0x58], 0x8b728965
mov dword [esp + 0x5c], 0x97b69579
mov dword [esp + 0x60], 0x93a591b2
mov dword [esp + 0x64], 0x9fbe9d7f
mov dword [esp + 0x68], 0x9b739964
mov dword [esp + 0x6c], 0xa74ba551
mov dword [esp + 0x70], 0xa35fa157
mov dword [esp + 0x74], 0xaf8ead50
mov dword [esp + 0x78], 0xab56a99f
mov dword [esp + 0x7c], 0xb785b594
mov dword [esp + 0x80], 0xb385b190
mov dword [esp + 0x84], 0xbf49bd4a
mov dword [esp + 0x88], 0xbb48b95a
mov dword [esp + 0x8c], 0x47a745a9
mov dword [esp + 0x90], 0x436241ab
mov dword [esp + 0x94], 0x4f6e4d62
mov dword [esp + 0x98], 0x4ba749a4
mov dword [esp + 0x9c], 0x577655a0
mov dword [esp + 0xa0], 0x53525172
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x83
ja 0x410605
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x9c]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xc062a9c
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0xbc
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x84
jb 0x4105c0
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x410631
lea edi, [esp + 0x2e0]
lea edx, [esp + 0x2a]
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410620
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x410661
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 0x410650
mov dword [edi], 0x220022
mov dword [edi + 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 0xd3a7a30
push dword [0x449d0c]
call fcn.0043c630
add esp, 8
mov esi, eax
jmp dword [0x44374c]
mov eax, dword [esp + 0x18]
mov dword [esp], 0x4a555457
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov byte [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xc
ja 0x4107a1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx]
lea esi, [ecx - 0x34f5a573]
lea edi, [ecx + 0x8d]
or edi, esi
and edi, edx
not edx
or edx, esi
add edi, edx
neg edi
add ecx, edi
add ecx, 0xcb0a5a8c
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xcc]
add cl, 0x25
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xd
jb 0x410750
mov ecx, dword [0x449d18]
test ecx, ecx
je case.0x410465.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x449d1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4107d0
inc esi
cmp ecx, esi
jne 0x4107c0
jmp case.0x410465.0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x410465.0
push eax
push 1
push dword [0x449d20]
push ecx
call fcn.0043ab10
add esp, 0x10
jmp case.0x410465.0
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44375c]
lea ecx, [esp + 0xae0]
call fcn.00409b00
lea ecx, [esp + 0xb48]
call fcn.00409b00
lea ecx, [esp + 0xbb0]
call fcn.00409b00
lea ecx, [esp + 0xc18]
call fcn.00409b00
lea ecx, [esp + 0xc80]
call fcn.00409b00
lea ecx, [esp + 0x1f8]
call fcn.00409b00
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x18]
lea ecx, [esp + 0x2e0]
push eax
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push ecx
push 0
call esi
lea eax, [esp + 0x18]
lea ecx, [esp + 0x2e0]
push eax
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push ecx
push 0
call esi
jmp dword [0x443758]
xor edi, edi
mov dword [esp + 0x148], esi
jmp 0x410976
push esi
call fcn.00402e90
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44376c]
mov dword [esp + 0x14c], edi
push edi
push esi
call fcn.00402ea0
add esp, 8
mov word [esp + 0x50], 0x118a
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 8
ja 0x410a0d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [edi - 0x3e96f0fd]
add edi, 3
and edi, ecx
or edx, ecx
sub edx, edi
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xc8]
add dl, 0xeb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], dl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 9
jb 0x4109d0
push 3
push ebx
mov dword [esp + 0x1c], eax
push eax
call fcn.00402d70
add esp, 0xc
mov ecx, dword [case.0x410280.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
mov esi, 1
xor edi, edi
jmp dword [ecx*4 + 0x443784]
mov esi, dword [esp + 0x14]
fldz
jmp dword [0x443790]
fstp st(0)
mov word [esp + 0x50], 0xb902
mov dword [esp + 0x56], 0
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x410ac7
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0xc097
xor eax, 0xc097
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xdf
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410a80
push ebx
push esi
call fcn.004027e0
fstp st(0)
add esp, 8
fldz
jmp case.0x410280.27
push ebx
push esi
call fcn.004027e0
add esp, 8
jmp dword [0x443798]
fstp st(0)
mov word [esp + 0x50], 0xb902
mov dword [esp + 0x56], 0
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x410ae0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0xc097
xor eax, 0xc097
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xdf
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410b20
jmp 0x410ae0
fnstcw word [esp + 0x132]
movzx eax, word [esp + 0x132]
or eax, 0xc00
mov word [esp + 0x142], ax
fldcw word [esp + 0x142]
fistp dword [esp + 0x160]
fldcw word [esp + 0x132]
mov eax, dword [esp + 0x160]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44379c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4437a4]
sete al
movzx eax, al
xor esi, esi
mov edi, 1
jmp dword [eax*4 + 0x4437ac]
mov word [esp + 0x50], 0x8d27
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410c40
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0xbe]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x55ce49be
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xce
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb case.default.0x410c58
push 2
push ebx
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x443864]
mov word [esp + 0xc8], 0x61f0
mov dword [esp + 0xca], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xd1], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
ja 0x410d04
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + ecx + 0xc8]
lea ebx, [eax + 0x68013f0]
lea ecx, [eax + edx]
add ecx, 0x68013f0
add eax, 0xf0
or eax, ebx
and ebx, edx
and eax, edx
add eax, ebx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
or ecx, 0x6f
and eax, 0x6f
add eax, ecx
inc al
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jb 0x410ca0
push 2
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
lea ebx, [esp + 0x50]
mov al, 1
jmp dword [ecx*4 + 0x44386c]
jmp dword [0x443878]
mov word [esp + 0x30], 0x51e1
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 7
ja 0x410d9b
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax - 0x7c4f9e8d]
add eax, 0x73
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xdb
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x410d60
push 5
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp case.0x410d27.3
push 5
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp dword [0x443880]
mov word [esp + 0x30], 0x51e1
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 7
ja 0x410db0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax - 0x7c4f9e8d]
add eax, 0x73
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xdb
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x410df0
jmp 0x410db0
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4437b4]
mov word [esp + 0x50], 0x6d9c
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x410eb9
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x50]
lea ecx, [eax + edx]
add ecx, 0x5917142e
add eax, 0x2e
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 + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xbe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x410e70
push ebx
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x50], 0x59c2
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov byte [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x410f41
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + ecx]
add edx, 0xa48a8acc
add eax, 0xa48a8acc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x6c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x410f00
push ebx
push esi
call fcn.004026a0
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x28]
test edx, edx
sete cl
xor esi, esi
mov edi, 1
jmp dword [ecx*4 + 0x44398c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443994]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov ecx, edx
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x410f80
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
mov edi, edx
add edi, ecx
xor esi, esi
mov dword [esp + 0x2c], ecx
test ecx, ecx
jle 0x410fd7
cmp byte [edx], 0
je 0x410fd7
xor esi, esi
mov ebx, dword [esp + 0x28]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040f180
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x410fd7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x410fb0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x410fe5
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
jbe 0x411c7b
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x2c], 0
jle 0x411c7b
mov esi, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411c7b
lea ecx, [esp + 0x50]
push ecx
push edi
push ebx
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x411c77
add ebx, eax
cmp ebx, edi
mov ecx, dword [esp + 0x20]
jb 0x411030
jmp 0x411c7b
mov word [esp + 0x50], 0x2dbc
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4110ee
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x923aa7a]
and edx, ecx
add eax, ecx
add eax, 0x923aa7a
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xaa
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4110a0
push ebx
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x50], 0xad22
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x411186
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0x9700ae6
xor eax, 0x9700ae6
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0xb6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411140
push ebx
push esi
call fcn.004026a0
add esp, 8
mov esi, eax
xor eax, eax
mov edx, dword [esp + 0x20]
test edx, edx
sete al
jmp dword [eax*4 + 0x443a1c]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x443a24]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x4111c0
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
mov eax, edx
add eax, ecx
mov dword [esp + 0x14], eax
xor edi, edi
mov dword [esp + 0x2c], ecx
test ecx, ecx
jle 0x41122b
cmp byte [edx], 0
mov edx, dword [esp + 0x14]
je 0x41122b
xor edi, edi
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edx
push ebx
call fcn.0040f180
mov edx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x41122b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411200
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411239
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov ecx, edi
and ecx, 1
xor edi, 1
lea ecx, [edi + ecx*2]
mov dword [esp + 0x50], 0
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov edi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
jbe 0x412133
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x2c], 0
jle 0x412133
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412133
lea edx, [esp + 0x50]
push edx
push ecx
push ebx
mov esi, ecx
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x28]
jae 0x41212f
add ebx, eax
cmp ebx, esi
mov ecx, esi
mov esi, dword [esp + 0x24]
jb 0x411290
jmp 0x412133
jmp dword [0x443a38]
sete al
movzx eax, al
xor esi, esi
mov edi, 1
jmp dword [eax*4 + 0x4437bc]
mov word [esp + 0x50], 0x31a0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41135c
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax - 0xe36c0d8]
add eax, 0x28
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0xe8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411320
push 2
push ebx
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4437c4]
jmp dword [0x4437cc]
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x443884]
jmp dword [0x443890]
mov word [esp], 0x8500
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x41140b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
lea edx, [eax - 0x295a2b3f]
add eax, 0xc1
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xb9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb 0x4113d0
push 2
lea eax, [esp + 4]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp case.0x410d27.9
push 2
lea eax, [esp + 4]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp dword [0x443894]
mov word [esp], 0x8500
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x411420
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
lea edx, [eax - 0x295a2b3f]
add eax, 0xc1
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xb9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb 0x411470
jmp 0x411420
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44389c]
movzx eax, al
jmp dword [eax*4 + 0x4438bc]
mov ecx, dword [esp + 0x20]
mov word [esi], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411c90
mov edx, dword [esp + 0x14]
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
add edx, edi
mov dword [esp + 0x14], edx
xor esi, esi
mov dword [esp + 0x24], edi
test edi, edi
jle 0x411cfb
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
je 0x411cfb
xor esi, esi
mov ebx, dword [esp + 0x20]
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
mov edi, dword [esp + 0x18]
push edi
push ebx
call fcn.0040f180
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x411cfb
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411cd0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x411d09
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x20]
jbe 0x411d6f
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x24], 0
jle 0x411d6f
mov esi, dword [esp + 0x2c]
nop
nop
cmp byte [ebx], 0
je 0x411d6f
lea eax, [esp + 0x50]
push eax
mov edi, dword [esp + 0x18]
push edi
push ebx
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x28]
jae 0x411d6f
add ebx, eax
cmp ebx, edi
jb 0x411d40
mov word [esi], 0
mov word [esp + 0x50], 0x1d2d
mov byte [esp + 0x52], 0x94
mov dword [esp + 0x53], 0
mov dword [esp + 0x56], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
lea edi, [esp + 0x50]
ja 0x411dfb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0xc0bd]
lea esi, [eax + 0xbd]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xc0bd
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xd5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x411db0
push edi
push dword [ebp + 8]
call fcn.00402920
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
mov dword [esp + 0x28], 0
xor edi, edi
jmp dword [ecx*4 + 0x44399c]
push dword [esp + 0x24]
call fcn.00402e90
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 0x411e50
mov esi, eax
test dl, dl
jne 0x411e56
mov ecx, esi
push ecx
call fcn.00409270
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
add edi, 4
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x4439a4]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4439ac]
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 + 0x4439ac]
xor ebx, ebx
xor eax, eax
cmp ebx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x4439b4]
jmp dword [0x4439c4]
lea ebx, [esp + 0x50]
mov ecx, ebx
push 2
call fcn.00409ac0
push dword [esp + 0x28]
push edi
push dword [esp + 0x34]
push dword [esp + 0x48]
push ebx
call fcn.00416eb0
add esp, 0x14
mov ecx, ebx
call fcn.0040a460
movzx eax, al
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x4439cc]
jmp dword [0x4439d8]
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00402a60
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [ebx + ebx*2]
mov edi, dword [esp + 0x20]
lea ecx, [edi + eax*4]
push edx
push dword [esp + 0x18]
push esi
call fcn.004166b0
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x4439b4]
push ebx
push dword [esp + 0x28]
call fcn.00402ea0
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0x1f09
mov byte [esp + 0x52], 0x72
lea eax, [esp + 0x53]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x412013
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x50]
lea ecx, [eax - 0x74f58792]
mov esi, ecx
and esi, edx
xor ecx, edx
add eax, 0x6e
and eax, edx
add eax, esi
sub ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
mov ecx, eax
xor ecx, 0xfd
and eax, 0x7d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x411fc0
lea eax, [esp + 0x50]
push eax
push edi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x50], 0xdbed
mov byte [esp + 0x52], 0x44
lea eax, [esp + 0x53]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4120a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x331cf635]
and edx, ecx
add eax, ecx
add eax, 0x331cf635
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x8d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x412060
lea eax, [esp + 0x50]
push eax
push edi
call fcn.004026a0
add esp, 8
mov esi, eax
mov dword [esp + 0x50], 0xbb2b18a
lea eax, [esp + 0x53]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411f40
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x285c732d]
add eax, 0x2d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
mov ecx, eax
xor ecx, 0xc4
and eax, 0x44
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4120e0
jmp 0x411f40
mov esi, dword [esp + 0x24]
mov word [edi], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x412140
lea edi, [esi + eax]
dec edi
mov ebx, esi
not ebx
and edi, ebx
add eax, esi
neg eax
and eax, esi
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412169
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov edx, edi
test esi, esi
jne 0x412193
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412180
lea edx, [ecx - 1]
and edx, ebx
neg ecx
and ecx, esi
sub edx, ecx
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
jbe 0x4121eb
mov ebx, dword [esp + 0x2c]
test edx, edx
jle 0x4121eb
mov edi, esi
add edi, edx
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4121eb
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4121eb
add esi, eax
cmp esi, edi
jb 0x4121c0
mov word [ebx], 0
mov word [esp + 0x50], 0xfdf5
mov byte [esp + 0x52], 0x64
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov dword [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41228d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x21231791]
lea esi, [eax + 0x91]
and esi, ecx
mov edi, 0x6e
sub edi, eax
and edi, edx
and edi, ecx
add eax, ecx
add eax, 0x21231791
lea ecx, [edi + esi*2]
sub eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
mov ecx, eax
xor ecx, 8
and eax, 8
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412230
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00402920
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 0
jmp dword [ecx*4 + 0x443a3c]
lea ebx, [esp + 0x50]
mov ecx, ebx
push 3
call fcn.00409ac0
push dword [esp + 0x24]
mov edi, dword [esp + 0x18]
push edi
mov esi, dword [esp + 0x34]
push esi
push dword [esp + 0x48]
push ebx
call fcn.0041a050
add esp, 0x14
mov ecx, ebx
call fcn.0040a460
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443a7c]
xor esi, esi
mov edi, 1
jmp dword [0x443ad0]
jmp dword [edi*4 + 0x443ad4]
push dword [esp + 0x20]
call fcn.00402e90
add esp, 4
mov ecx, eax
mov dword [esp + 0x24], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x4123d2
mov esi, eax
test dl, dl
jne 0x4123d8
mov ecx, esi
push ecx
call fcn.00409270
add esp, 4
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x14], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443a44]
mov eax, dword [esp + 0x24]
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 + 0x443a4c]
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 + 0x443a4c]
jmp dword [0x443a5c]
xor ebx, ebx
xor eax, eax
cmp ebx, dword [esp + 0x24]
setb al
jmp dword [eax*4 + 0x443a64]
jmp dword [0x443a6c]
push ebx
push dword [esp + 0x24]
call fcn.00402ea0
add esp, 8
mov esi, eax
mov word [esp + 0x50], 0xf15
mov byte [esp + 0x52], 0xb2
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov byte [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412533
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x50]
lea edi, [eax + 0x37892d98]
lea ecx, [eax + edx]
add ecx, 0x37892d98
and edi, edx
add eax, 0x98
and eax, edx
add eax, edi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xd8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4124e0
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x50], 0x73a1
mov byte [esp + 0x52], 0xf8
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov dword [esp + 0x5b], 0
mov byte [esp + 0x5f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4125c1
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax - 1]
and edx, ecx
mov edi, 0x54f83a00
sub edi, eax
or edi, ecx
not edi
add edi, ecx
sub edi, edx
mov dword [esp + 0xc8], edi
mov eax, dword [esp + 0xc8]
add al, 7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412580
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0x2d39
mov byte [esp + 0x52], 0xa0
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov byte [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x41265d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x7595ebb]
add eax, 0xbb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
mov ecx, eax
or ecx, 0xe2
and eax, 0xe2
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x412610
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
lea ecx, [ebx + ebx*2]
mov edx, dword [esp + 0x14]
lea ecx, [edx + ecx*4]
push eax
push dword [esp + 0x2c]
push edi
call fcn.00416860
push ebx
push dword [esp + 0x24]
call fcn.00402ea0
add esp, 8
mov esi, eax
mov word [esp + 0x50], 0xf15
mov byte [esp + 0x52], 0xb2
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov byte [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412713
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x50]
lea edi, [eax + 0x37892d98]
lea ecx, [eax + edx]
add ecx, 0x37892d98
and edi, edx
add eax, 0x98
and eax, edx
add eax, edi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xd8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4126c0
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x50], 0x73a1
mov byte [esp + 0x52], 0xf8
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov dword [esp + 0x5b], 0
mov byte [esp + 0x5f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4127a1
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax - 1]
and edx, ecx
mov edi, 0x54f83a00
sub edi, eax
or edi, ecx
not edi
add edi, ecx
sub edi, edx
mov dword [esp + 0xc8], edi
mov eax, dword [esp + 0xc8]
add al, 7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412760
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
mov edi, eax
mov word [esp + 0x50], 0x2d39
mov byte [esp + 0x52], 0xa0
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov byte [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x41283d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x7595ebb]
add eax, 0xbb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
mov ecx, eax
or ecx, 0xe2
and eax, 0xe2
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4127f0
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004026a0
add esp, 8
lea ecx, [ebx + ebx*2]
mov edx, dword [esp + 0x14]
lea ecx, [edx + ecx*4]
push eax
push dword [esp + 0x2c]
push edi
call fcn.00416860
jmp dword [0x443a78]
mov word [esp + 0x40], 0x31ba
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja case.0x411374.9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x78]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xafbadb78
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xb8
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb 0x412b00
mov word [esp + 0x40], 0x31ba
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja 0x412bac
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 + 0x40]
lea edx, [eax + 0x78]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xafbadb78
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xb8
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb 0x412b70
jmp dword [0x4437f0]
push 2
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437f4]
mov word [esp], 0xb912
mov dword [esp + 2], 0
mov dword [esp + 5], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 8
ja 0x412c49
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
lea edx, [eax - 0xc52d469]
add eax, 0x97
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
mov ecx, eax
xor ecx, 0xde
and eax, 0x5e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 9
jb 0x412c00
push 3
lea eax, [esp + 4]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437fc]
mov word [esp + 0xb8], 0xb2c6
mov byte [esp + 0xba], 0x2a
mov dword [esp + 0xbb], 0
mov byte [esp + 0xbf], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja 0x412cf0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
movzx edx, byte [esp + eax + 0xb8]
lea eax, [ecx - 0x5845a886]
and eax, edx
add ecx, edx
add ecx, 0xa7ba577a
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xaa
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb case.default.0x412d11
push 3
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
lea ebx, [esp + 0x50]
jmp dword [ecx*4 + 0x443804]
push esi
call fcn.00402e90
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x443814]
push edi
push esi
call fcn.00402e70
add esp, 8
push eax
call fcn.004027c0
add esp, 4
mov ebx, eax
xor edx, edx
test eax, eax
sete dl
mov eax, 1
xor ecx, ecx
jmp dword [edx*4 + 0x44381c]
mov dword [esp + 0x28], edi
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x412d80
mov edi, ebx
not edi
mov esi, eax
and esi, edi
not eax
and eax, ebx
sub esi, eax
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412da4
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov edx, esi
test ebx, ebx
jne 0x412dd3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412dc0
lea edx, [ecx - 1]
and edx, edi
neg ecx
and ecx, ebx
sub edx, ecx
mov dword [esp + 0xc8], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
jbe 0x412e40
mov esi, dword [esp + 0x20]
test edx, edx
jle 0x412e40
mov edi, ebx
add edi, edx
mov esi, dword [esp + 0x20]
nop
cmp byte [ebx], 0
je 0x412e40
lea eax, [esp + 0xc8]
push eax
push edi
push ebx
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0xc8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x412e40
add ebx, eax
cmp ebx, edi
jb 0x412e00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0x124], 0
setg al
mov word [esi], 0
push 0
push eax
push dword [esp + 0x40]
push dword [esp + 0x134]
mov ebx, dword [esp + 0x30]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x3c]
lea eax, [esp + 0x6c]
push eax
call fcn.0041cfc0
add esp, 0x20
xor eax, eax
mov ecx, 1
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
jmp dword [0x443824]
jmp dword [ecx*4 + 0x44382c]
mov eax, dword [0x443850]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0xc8], 0x575
mov dword [esp + 0xca], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xd2], 0
mov word [esp + 0xd6], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
ja 0x413062
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xc8]
lea edx, [eax + ecx]
inc eax
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xacd50501
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xf9
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jb 0x413020
push 5
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp dword [0x4437d8]
mov word [esp + 0xc8], 0x575
mov dword [esp + 0xca], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xd2], 0
mov word [esp + 0xd6], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
ja 0x413112
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 + 0xc8]
lea edx, [eax + ecx]
inc eax
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xacd50501
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xf9
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jb 0x4130d0
push 5
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x1c]
call fcn.00402d70
add esp, 0xc
jmp case.0x411374.2
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437dc]
movzx eax, bl
lea ebx, [esp + 0x50]
jmp dword [eax*4 + 0x443804]
mov word [esp + 0x50], 0x8516
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4131b6
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax - 0x25ca0ceb]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xda35f314
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x6d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x413170
push ebx
mov esi, dword [esp + 0x18]
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x50], 0x6d81
mov dword [esp + 0x56], 0
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x413236
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0xc0ae
xor eax, 0xc0ae
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x3e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x4131f0
push ebx
push esi
call fcn.00402920
add esp, 8
mov dword [esp + 0x3c], eax
mov word [esp + 0x50], 0xcd4a
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov byte [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4132c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x6e2c0462]
and edx, ecx
add eax, ecx
add eax, 0x6e2c0462
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x52
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x413280
push ebx
push esi
call fcn.004026a0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x50], 0x19b4
mov dword [esp + 0x56], 0
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41333e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0xc0ac]
add eax, 0xac
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x4c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413300
push ebx
push esi
call fcn.004027e0
add esp, 8
fnstcw word [esp + 0x136]
movzx eax, word [esp + 0x136]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x15c]
fldcw word [esp + 0x136]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x38], eax
mov word [esp + 0x50], 0x6ca0
mov byte [esp + 0x52], 0xf8
mov dword [esp + 0x53], 0
mov byte [esp + 0x57], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x413400
nop
nop
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x50]
lea eax, [edx - 0x4c4cb681]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0x4c4cb680
sub edi, edx
or edi, esi
add edi, edx
add edi, ecx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0x4c4cb680
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x87
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x4133b0
push ebx
mov edi, dword [esp + 0x18]
push edi
call fcn.004027e0
add esp, 8
fnstcw word [esp + 0x134]
movzx eax, word [esp + 0x134]
or eax, 0xc00
mov word [esp + 0x144], ax
fldcw word [esp + 0x144]
fistp dword [esp + 0x158]
fldcw word [esp + 0x134]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x128], eax
mov word [esp + 0x50], 0xad56
mov byte [esp + 0x52], 0x32
mov dword [esp + 0x57], 0
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4134d3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x50]
lea esi, [eax + 0x1a8519a8]
lea ecx, [eax + edx]
add ecx, 0x1a8519a8
and esi, edx
add eax, 0xa8
and eax, edx
add eax, esi
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, 0x68
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x413480
push ebx
push edi
call fcn.00402a60
add esp, 8
mov dword [esp + 0x124], eax
xor eax, eax
mov edx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4134f0
lea ecx, [edx + eax]
dec ecx
mov ebx, edx
not ebx
and ebx, ecx
add eax, edx
neg eax
and eax, edx
sub ebx, eax
mov esi, edx
add esi, ebx
xor edi, edi
mov dword [esp + 0x2c], ebx
test ebx, ebx
jle 0x413557
cmp byte [edx], 0
je 0x413557
xor edi, edi
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040f180
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x413557
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x413530
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x413565
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
jbe 0x4135f3
mov ebx, dword [esp + 0x138]
cmp dword [esp + 0x2c], 0
jle 0x4135f3
mov ebx, dword [esp + 0x138]
mov dword [esp + 0x20], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4135f3
lea eax, [esp + 0x50]
push eax
push esi
push ecx
mov edi, esi
mov esi, ecx
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4135ef
add esi, eax
cmp esi, edi
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x20]
jb 0x4135b0
jmp 0x4135f3
jmp dword [0x4437e8]
mov edi, dword [esp + 0x20]
mov word [ebx], 0
mov eax, esp
push eax
push 0
push 0
push edi
mov ebx, dword [esp + 0x148]
push ebx
push 0
call dword [0x449d14]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x41361f
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x34], ecx
push ecx
push edi
push ebx
push 0
call dword [0x449d14]
jmp dword [0x44380c]
push ebx
call fcn.00409280
add esp, 4
mov edx, dword [esp + 0x28]
mov ecx, edx
jmp 0x41396e
mov edx, dword [esp + 0x28]
mov eax, edx
jmp 0x413966
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x413972
mov eax, ecx
jmp 0x413966
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
mov esi, edx
add esi, ecx
xor ebx, ebx
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x4139c7
cmp byte [edx], 0
je 0x4139c7
xor ebx, ebx
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push edi
call fcn.0040f180
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4139c7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4139a0
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4139e0
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov edi, dword [esp + 0x28]
jbe 0x413a4b
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x20], 0
jle 0x413a4b
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x413a4b
lea eax, [esp + 0x50]
push eax
push esi
push edi
call fcn.0040f180
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x413a4b
add edi, eax
cmp edi, esi
jb 0x413a20
mov word [ebx], 0
lea ebx, [esp + 0x50]
mov ecx, ebx
push 1
call fcn.00409ac0
xor edi, edi
mov esi, dword [esp + 0x3c]
jmp 0x412d2c
mov eax, dword [esp + 0x54]
mov byte [esp + 0x4a], 0
cmp eax, 0x3ff
ja 0x413c09
mov byte [esp + 0x49], 0x30
lea esi, [esp + 0x49]
jmp 0x413c8e
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x4a]
cmp eax, 0x19000
jb 0x413c5e
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 + 0x440528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x413c20
cmp edx, 9
ja 0x413c65
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x413c8a
mov edx, ecx
cmp edx, 9
jbe 0x413c51
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
movzx eax, word [ecx + edx + 0x440528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov edi, dword [esp + 0x20]
mov dword [esp], 0x43bc8bf3
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 9
ja 0x413d06
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx]
add eax, 0xc0b6
xor eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 6
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
jb 0x413cc0
mov dword [esp + 0xc8], 0x9083423
mov dword [esp + 0xcc], 0x67231713
mov dword [esp + 0xd0], 0x172b202e
mov dword [esp + 0xd4], 0x136e2121
mov dword [esp + 0xd8], 0x2619691f
mov dword [esp + 0xdc], 0xd496d9e2
mov dword [esp + 0xe0], 0xe6e5e3d8
mov dword [esp + 0xe4], 0x9febe0d5
mov dword [esp + 0xe8], 0xd0d9d8e8
mov dword [esp + 0xec], 0xfb86f9c9
mov dword [esp + 0xf0], 0xcbfe81f7
mov dword [esp + 0xf4], 0xc2fd8dc1
mov dword [esp + 0xf8], 0xf9c7f7fa
mov dword [esp + 0xfc], 0xc0cab580
mov dword [esp + 0x100], 0xb3c6f0cc
mov dword [esp + 0x104], 0xf4fdfccc
mov dword [esp + 0x108], 0xc8bac5f5
mov dword [esp + 0x10c], 0x9debdfed
mov word [esp + 0x110], 0x41a0
mov word [esp + 0x11a], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0x53
ja 0x413e66
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + ecx + 0xc8]
lea ecx, [eax + edx]
add ecx, 0x58a3926c
add eax, 0x58a3926c
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 + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xc
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0x54
jb 0x413e10
lea eax, [0x448d0b]
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413e70
movzx ecx, byte [esp + 0xc8]
test cl, cl
je 0x413ea2
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xc9]
inc edx
test cl, cl
jne 0x413e90
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x413ebb
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x413eb0
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x413edb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x413ed0
mov byte [eax], 0
mov eax, dword [esp + 0x54]
mov byte [esp + 0x4a], 0
cmp eax, 0x3ff
ja 0x413efc
mov byte [esp + 0x49], 0x30
lea esi, [esp + 0x49]
jmp 0x413f7e
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x4a]
cmp eax, 0x19000
jb 0x413f4e
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 + 0x440528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x413f10
cmp edx, 9
ja 0x413f55
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x413f7a
mov edx, ecx
cmp edx, 9
jbe 0x413f41
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
movzx eax, word [ecx + edx + 0x440528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov edi, dword [esp + 0x20]
mov dword [esp], 0x43bc8bf3
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 9
ja 0x413ff6
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx]
add eax, 0xc0b6
xor eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 6
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
jb 0x413fb0
mov dword [esp + 0xc8], 0x9083423
mov dword [esp + 0xcc], 0x67231713
mov dword [esp + 0xd0], 0x172b202e
mov dword [esp + 0xd4], 0x136e2121
mov dword [esp + 0xd8], 0x2619691f
mov dword [esp + 0xdc], 0xd496d9e2
mov dword [esp + 0xe0], 0xe6e5e3d8
mov dword [esp + 0xe4], 0x9febe0d5
mov dword [esp + 0xe8], 0xd0d9d8e8
mov dword [esp + 0xec], 0xfb86f9c9
mov dword [esp + 0xf0], 0xcbfe81f7
mov dword [esp + 0xf4], 0xc2fd8dc1
mov dword [esp + 0xf8], 0xf9c7f7fa
mov dword [esp + 0xfc], 0xc0cab580
mov dword [esp + 0x100], 0xb3c6f0cc
mov dword [esp + 0x104], 0xf4fdfccc
mov dword [esp + 0x108], 0xc8bac5f5
mov dword [esp + 0x10c], 0x9debdfed
mov word [esp + 0x110], 0x41a0
mov word [esp + 0x11a], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0x53
ja 0x414156
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + ecx + 0xc8]
lea ecx, [eax + edx]
add ecx, 0x58a3926c
add eax, 0x58a3926c
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 + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xc
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0x54
jb 0x414100
lea eax, [0x448d0b]
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x414160
movzx ecx, byte [esp + 0xc8]
test cl, cl
je 0x414192
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xc9]
inc edx
test cl, cl
jne 0x414180
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x4141ab
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4141a0
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x4141cb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4141c0
mov byte [eax], 0
jmp dword [0x4439dc]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4439e4]
mov ecx, dword [0x443af4]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx