Function at 0x40d7b0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb8
mov ecx, dword [0x4468c4]
mov dword [esp + 0xc0], 0xc1015d16
mov word [esp + 0xc4], 0
mov byte [esp + 0xc6], 0
mov dword [esp + 0x228], 0
mov eax, dword [esp + 0x228]
cmp eax, 6
ja 0x40d859
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x228]
mov edx, dword [esp + 0x228]
movzx edx, byte [esp + edx + 0xc0]
lea esi, [eax + edx]
add eax, 0x37
and eax, edx
add eax, eax
sub esi, eax
add esi, 0xda19ff37
mov dword [esp + 0x2a8], esi
mov eax, dword [esp + 0x2a8]
add al, 5
mov edx, dword [esp + 0x228]
mov byte [esp + edx + 0xc0], al
inc dword [esp + 0x228]
mov eax, dword [esp + 0x228]
cmp eax, 7
jb 0x40d800
mov edx, dword [str.xUEMRp__]
mov dword [esp + 0x2a8], 0x8a7e6e63
mov dword [esp + 0x2ac], 0x6263607e
mov dword [esp + 0x2b0], 0x626b6476
mov dword [esp + 0x2b4], 0x726b6a7b
mov dword [esp + 0x2b8], 0x63bc7c79
mov dword [esp + 0x2bc], 0xa5996d73
mov dword [esp + 0x2c0], 0x91b4abae
mov dword [esp + 0x2c4], 0x21618b8f
mov byte [esp + 0x2c8], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0x20
ja 0x40d924
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx edi, byte [esp + esi + 0x2a8]
lea esi, [eax + edi]
add eax, 0x65
and eax, edi
sub esi, eax
add esi, 0x2d2d5565
mov edi, esi
not edi
and edi, eax
not eax
and eax, esi
sub eax, edi
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x228]
add al, 0x5b
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2a8], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x21
jb 0x40d8d0
movzx ebx, byte [esp + 0x2a8]
lea eax, [esp + 0x228]
test bl, bl
je 0x40d94b
lea esi, [esp + 0x2a9]
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d940
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d96b
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 0x40d960
mov byte [eax], 0
movzx edx, byte [esp + 0xc0]
test dl, dl
je 0x40d99b
lea esi, [esp + 0xc1]
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 0x40d990
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d9bb
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 0x40d9b0
mov byte [eax], 0
mov dword [esp + 0x2a8], 0xdb75e5a3
mov dword [esp + 0x2ac], 0xdf4cd948
mov dword [esp + 0x2b0], 0xd34edd45
mov dword [esp + 0x2b4], 0xd783d146
mov dword [esp + 0x2b8], 0xcb5bd562
mov dword [esp + 0x2bc], 0xcf53c95a
mov dword [esp + 0x2c0], 0xc3accd80
mov dword [esp + 0x2c4], 0xc750c165
mov dword [esp + 0x2c8], 0x3b58c556
mov dword [esp + 0x2cc], 0x3f9d39a5
mov dword [esp + 0x2d0], 0x33a83d99
mov dword [esp + 0x2d4], 0x37a131ad
mov dword [esp + 0x2d8], 0x2b6535a4
mov dword [esp + 0x2dc], 0x2f7b29a2
mov dword [esp + 0x2e0], 0x23a52da7
mov dword [esp + 0x2e4], 0x277321ab
mov dword [esp + 0x2e8], 0x1bb525bc
mov dword [esp + 0x2ec], 0x1f8b198c
mov dword [esp + 0x2f0], 0x13971d4d
mov dword [esp + 0x2f4], 0x178c1184
mov dword [esp + 0x2f8], 0xb86158d
mov dword [esp + 0x2fc], 0xf9909af
mov dword [esp + 0x300], 0x3970daa
mov dword [esp + 0x304], 0x77301a6
mov dword [esp + 0x308], 0x7b040578
mov byte [esp + 0x30c], 0
lea ecx, [esp + 0x228]
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x64
ja 0x40db4e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x2a8]
lea edi, [edx + esi]
add edi, 0xdb72dc5d
add edx, 0xdb72dc5d
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0xc0], edi
mov edx, dword [esp + 0xc0]
add dl, 0x45
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x65
jb 0x40db00
sub eax, ecx
mov dword [esp + 0xc0], 0x31953765
mov dword [esp + 0xc4], 0x3d9933a0
mov word [esp + 0xc8], 0x3f3c
mov dword [esp + 0xca], 0
mov dword [esp + 0x1c0], 0
mov edx, dword [esp + 0x1c0]
cmp edx, 0xd
ja 0x40dbea
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1c0]
mov esi, dword [esp + 0x1c0]
movzx esi, byte [esp + esi + 0xc0]
add edx, 0xafc34c01
xor edx, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
add dl, 0xcb
mov esi, dword [esp + 0x1c0]
mov byte [esp + esi + 0xc0], dl
inc dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c0]
cmp edx, 0xe
jb 0x40dba0
lea edx, [esp + 0xbc]
lea esi, [esp + 0xac]
lea edi, [esp + 0x2a8]
lea ebx, [esp + 0xc0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x44bd94
call fcn.0040c560
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4472ac]
xor esi, esi
xor ecx, ecx
test esi, 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4472b4]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp + 0xac]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40dc68
cmp edx, 0x2e
jne 0x40dc69
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x40dc78
cmp ecx, 0x2e
jne 0x40dc79
dec eax
push eax
call fcn.00409a50
add esp, 4
mov esi, eax
push eax
push edi
call fcn.0043a300
add esp, 8
push dword [esp + 0xac]
call fcn.0043db40
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
lea edi, [esp + 0x2a8]
jmp dword [ecx*4 + 0x4472b4]
jmp dword [0x4472c0]
push ebx
call fcn.00402a00
add esp, 4
mov esi, eax
jmp dword [0x44730c]
push ebx
call fcn.00409a60
add esp, 4
push esi
call fcn.00411d20
add esp, 4
push esi
call fcn.00403a60
add esp, 4
jmp case.0x40eaea.6
lea ecx, [esp + 0x2a8]
push 1
call fcn.0040a230
mov eax, 0xffffffff
nop
nop
cmp byte [eax + 0x44c09d], 0
lea eax, [eax + 1]
jne 0x40dd00
mov dword [esp + 0x28], 0xeddddfb1
mov dword [esp + 0x2c], 0xe4ebacd2
mov dword [esp + 0x30], 0x62e9
mov byte [esp + 0x34], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40dd75
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x90821487
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xe
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40dd40
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x44c09c
push ebx
call fcn.0040a440
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.0040a270
jmp case.0x40df11.3
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x44c09c
push ebx
call fcn.0040a440
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.0040a270
jmp dword [0x447328]
lea esi, [esp + 0x32]
lea ecx, [esp + 0x2a8]
push 1
call fcn.0040a230
mov eax, 0xffffffff
cmp byte [eax + 0x44c09d], 0
lea eax, [eax + 1]
jne 0x40dde0
mov dword [esp + 0x28], 0xeddddfb1
mov dword [esp + 0x2c], 0xe4ebacd2
mov word [esp + 0x30], 0x62e9
mov byte [esi + 2], 0
mov word [esi], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40dda0
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x90821487
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xe
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40de20
jmp 0x40dda0
call fcn.004388b0
movzx eax, al
jmp dword [eax*4 + 0x4472dc]
push esi
call fcn.00403a60
add esp, 4
xor eax, eax
jmp 0x40e340
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x447304]
mov dword [esp + 0x2a8], 0x228e8a8b
mov byte [esp + 0x2ac], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 4
ja 0x40def9
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add edx, 0x37f98001
add eax, 0x37f98001
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xda
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 5
jb 0x40deb0
push edi
push dword [esp + 0x28]
call fcn.00403600
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
lea ebx, [esp + 0x28]
jmp dword [ecx*4 + 0x447314]
xor eax, eax
cmp dword [esp + 0xb4], 0
setg al
jmp dword [eax*4 + 0x44732c]
push 0
call fcn.00440ea0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447334]
jmp dword [0x447344]
jmp dword [0x447320]
mov dword [esp + 0x28], 0xaa58a440
mov dword [esp + 0x2c], 0xae9da84d
mov dword [esp + 0x30], 0xb24bac46
mov dword [esp + 0x34], 0xb697b05a
mov dword [esp + 0x38], 0xba4eb493
mov dword [esp + 0x3c], 0xbe58b84d
mov dword [esp + 0x40], 0x42b7bc4b
mov dword [esp + 0x44], 0x46764061
mov dword [esp + 0x48], 0x4aa444b6
mov dword [esp + 0x4c], 0x4e6f48bb
mov dword [esp + 0x50], 0x52a04ca8
mov dword [esp + 0x54], 0x566550b5
mov dword [esp + 0x58], 0x5aa354be
mov dword [esp + 0x5c], 0x5e7f58b2
mov dword [esp + 0x60], 0x62525c7b
mov dword [esp + 0x64], 0x66476084
mov dword [esp + 0x68], 0x6a846491
mov dword [esp + 0x6c], 0x6e84689a
mov dword [esp + 0x70], 0x72886c9c
mov dword [esp + 0x74], 0x76577085
mov dword [esp + 0x78], 0x7a8f7444
mov dword [esp + 0x7c], 0x7e4a7859
mov dword [esp + 0x80], 0x2327c5d
mov dword [esp + 0x84], 0x6f600f3
mov dword [esp + 0x88], 0xafd04e3
mov dword [esp + 0x8c], 0xee808e2
mov dword [esp + 0x90], 0x12330ce0
mov dword [esp + 0x94], 0x1637103b
mov dword [esp + 0x98], 0x1af014f1
mov dword [esp + 0x9c], 0x1e3f18f5
mov dword [esp + 0xa0], 0x22231c3b
mov dword [esp + 0xa4], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x7f
ja 0x40e0b8
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x1b4f1866
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x3d
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x80
jb 0x40e080
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x40e0e1
lea edi, [esp + 0x2a8]
lea edx, [esp + 0x2a]
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e0d0
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e111
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 0x40e100
mov word [edi], 0
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 0xc9be8534
push dword [0x44d09c]
call fcn.00440fc0
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2a8]
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 + 0x44733c]
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0x7a79787f
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 7
ja 0x40e265
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 4]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0x93
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 4], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 8
jb 0x40e220
mov ecx, dword [0x44d0a8]
test ecx, ecx
je case.0x40dcad.34
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44d0ac]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40e290
inc esi
cmp ecx, esi
jne 0x40e280
jmp case.0x40dcad.34
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x40e35a
jmp dword [0x447344]
lea ecx, [esp + 0xaa8]
call fcn.0040a270
lea ecx, [esp + 0xb10]
call fcn.0040a270
lea ecx, [esp + 0xb78]
call fcn.0040a270
lea ecx, [esp + 0xbe0]
call fcn.0040a270
lea ecx, [esp + 0xc48]
call fcn.0040a270
lea ecx, [esp + 0x1c0]
call fcn.0040a270
nop
nop
nop
nop
nop
nop
lea ecx, [esp + 0xaa8]
call fcn.0040a270
lea ecx, [esp + 0xb10]
call fcn.0040a270
lea ecx, [esp + 0xb78]
call fcn.0040a270
lea ecx, [esp + 0xbe0]
call fcn.0040a270
lea ecx, [esp + 0xc48]
call fcn.0040a270
lea ecx, [esp + 0x1c0]
call fcn.0040a270
jmp dword [0x447350]
mov al, 1
mov ecx, dword [case.0x40dcad.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x44d0b0]
push ecx
call fcn.0043f8b0
add esp, 0x10
jmp dword [0x447344]
push esi
mov esi, eax
call fcn.00409a60
mov eax, esi
add esp, 4
mov esi, eax
push eax
call fcn.004034b0
add esp, 4
mov dword [esp + 0x24], eax
mov word [esp + 0x2a8], 0x393d
mov byte [esp + 0x2aa], 0x8d
mov word [esp + 0x2ab], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 4
ja 0x40e3ff
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x20707167
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x1c
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 5
jb 0x40e3c0
push edi
push dword [esp + 0x28]
call fcn.00403600
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4472d4]
mov dword [esp + 0x28], 0xb0cfd3
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x40e488
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x7240df3c
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x72
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x40e440
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x28]
call fcn.00403600
add esp, 8
mov dword [esp + 0xb4], eax
mov word [esp + 0x2a8], 0x96db
mov byte [esp + 0x2aa], 0x30
mov dword [esp + 0x2ab], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 6
ja 0x40e51f
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add edx, 0x8a6857bf
add eax, 0x8a6857bf
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xf
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 7
jb 0x40e4d0
push edi
mov edi, dword [esp + 0x28]
push edi
call fcn.00403600
add esp, 8
mov dword [esp + 0xb0], eax
push edi
call fcn.0040eb80
add esp, 4
push esi
call fcn.00403a60
add esp, 4
lea esi, [esp + 0x1c0]
mov ecx, esi
push 1
call fcn.0040a230
push esi
call fcn.0041d070
add esp, 4
mov ecx, esi
call fcn.0040aaf0
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.0040a230
push esi
call fcn.0041d8b0
add esp, 4
mov ecx, esi
call fcn.0040aaf0
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.0040a230
push esi
call fcn.0041db50
add esp, 4
mov ecx, esi
call fcn.0040aaf0
lea esi, [esp + 0xb78]
mov ecx, esi
push 1
call fcn.0040a230
push esi
call fcn.0041f940
add esp, 4
push esi
call fcn.00420370
add esp, 4
push esi
call fcn.004207c0
add esp, 4
push esi
call fcn.00423480
add esp, 4
mov ecx, esi
call fcn.0040aaf0
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.0040a230
push esi
call fcn.00422560
add esp, 4
mov ecx, esi
call fcn.0040aaf0
lea esi, [esp + 0xaa8]
mov ecx, esi
push 1
call fcn.0040a230
push esi
call fcn.00428280
add esp, 4
push esi
call fcn.00434300
add esp, 4
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x4472e4]
push esi
call fcn.00424f30
add esp, 4
lea ecx, [esp + 0xaa8]
call fcn.0040aaf0
mov dword [esp + 0x28], 0x9380a4f
mov dword [esp + 0x2c], 0x8f4b0d
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 7
ja 0x40e6a9
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x752366db
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x92
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 8
jb 0x40e670
mov eax, dword [0x4468c4]
mov dword [esp + 0x20], 0x5492c083
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 3
ja 0x40e718
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add ecx, 0x9f
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xb0d7179f
mov dword [esp + 0x2a8], esi
mov ecx, dword [esp + 0x2a8]
add cl, 0xa
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 4
jb 0x40e6d0
mov ecx, dword [str.xUEMRp__]
mov dword [esp + 0x2a8], 0xcf85abae
mov dword [esp + 0x2ac], 0xa189b9b4
mov dword [esp + 0x2b0], 0xb1b2bdb2
mov dword [esp + 0x2b4], 0xe0a0a3a2
mov dword [esp + 0x2b8], 0xdfaba591
mov dword [esp + 0x2bc], 0xe8e5e2d7
mov dword [esp + 0x2c0], 0xd7ada9a3
mov byte [esp + 0x2c4], 0x13
mov dword [esp + 0x2c5], 0
mov word [esp + 0x2c9], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x22
ja 0x40e7e4
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x2a8]
lea edi, [edx + 0x63]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0x60b67a63
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 0x94
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x23
jb 0x40e7a0
movzx edx, byte [esp + 0x2a8]
test dl, dl
je 0x40e80b
lea ebx, [esp + 0xc0]
lea esi, [esp + 0x2a9]
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e800
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e82b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40e820
mov byte [ebx], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
lea edi, [esp + 0x2a8]
je 0x40e85b
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e850
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e87b
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 0x40e870
mov byte [ebx], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40e89b
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 0x40e890
mov byte [ebx], 0
movzx eax, byte [0x44bd34]
test al, al
je 0x40e8c1
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [ebx + ecx], al
movzx eax, byte [ecx + 0x44bd35]
inc ecx
test al, al
jne 0x40e8b0
add ebx, ecx
mov byte [ebx], 0
mov dword [esp + 0x2a8], 0x59cb5b15
mov dword [esp + 0x2ac], 0x45d847d4
mov dword [esp + 0x2b0], 0x41d2432f
mov dword [esp + 0x2b4], 0x4d194fd2
mov dword [esp + 0x2b8], 0x49d14b36
mov dword [esp + 0x2bc], 0x751977e6
mov dword [esp + 0x2c0], 0x71507334
mov dword [esp + 0x2c4], 0x7dec7f1f
mov dword [esp + 0x2c8], 0x79ec7bea
mov dword [esp + 0x2cc], 0x650b670f
mov dword [esp + 0x2d0], 0x61fc6303
mov dword [esp + 0x2d4], 0x6dff6f07
mov dword [esp + 0x2d8], 0x693b6bf8
mov dword [esp + 0x2dc], 0x95c1970e
mov dword [esp + 0x2e0], 0x910b9309
mov dword [esp + 0x2e4], 0x9dc99f05
mov dword [esp + 0x2e8], 0x990b9bf0
mov dword [esp + 0x2ec], 0x85118718
mov dword [esp + 0x2f0], 0x811d83d7
mov dword [esp + 0x2f4], 0x8d188f10
mov dword [esp + 0x2f8], 0x891a8be7
mov dword [esp + 0x2fc], 0xb527b7d9
mov dword [esp + 0x300], 0xb1ddb3de
mov dword [esp + 0x304], 0xbd89bfd2
mov dword [esp + 0x308], 0xb9b8bb8c
mov dword [esp + 0x30c], 0
lea eax, [esp + 0xc0]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x67
ja 0x40ea3b
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x2a8]
add ecx, 0xb2fdeccc
xor ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 0x6a
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x2a8], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x68
jb 0x40ea00
sub ebx, eax
mov dword [esp + 0x28], 0x6b8b65b7
mov dword [esp + 0x2c], 0x6f8769f8
mov word [esp + 0x30], 0x6d6c
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xf
ja 0x40eac2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + edx]
add ecx, 0xb6
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x91a63eb6
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xc]
add cl, 0x2e
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x40ea80
lea ecx, [esp + 0xb8]
lea edx, [esp + 0xa8]
push ecx
push edx
push ebx
push eax
push edi
lea eax, [esp + 0x3c]
push eax
push 0x44bd94
call fcn.0040c560
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4472ec]
xor ebx, ebx
jmp 0x40eb4d
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40eb18
cmp edx, 0x2e
jne 0x40eb19
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40eb28
cmp ecx, 0x2e
jne 0x40eb29
dec eax
push eax
call fcn.00409a50
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.0043a300
add esp, 8
push dword [esp + 0xa8]
call fcn.0043db40
add esp, 4
mov eax, dword [case.0x40eaea.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4472cc]
push esi
call fcn.00402a00
add esp, 4
push esi
call fcn.00402a00
add esp, 4
jmp dword [0x4472c8]
jmp dword [0x447374]
xor ebx, ebx
lea edi, [esp + 0x9a]
mov dword [esp + 0x12c], esi
jmp 0x40ec58
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
mov esi, dword [esp + 0x12c]
push esi
call fcn.00403a20
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44737c]
push ebx
push esi
call fcn.00403a30
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x98], 0x6b5
mov byte [esp + 0x9c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ece9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x57c2696b
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x96
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ecb0
push 3
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x447384]
mov word [esp + 0x98], 0x1d8e
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ed79
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xcda08463
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x87
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ed40
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.004033a0
add esp, 8
fnstcw word [esp + 0x102]
movzx eax, word [esp + 0x102]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x140]
fldcw word [esp + 0x102]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [esp + 0x44], ebx
jmp dword [ecx*4 + 0x44738c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x447394]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44739c]
mov dword [esp + 0x3c], 0x42e6
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x40ee54
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add eax, 0x79
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xc54b2479
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0x98]
add al, 0xc8
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x40ee10
push 2
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44743c]
mov word [esp + 0x98], 0x7001
mov word [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x40eed9
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x697b3bfc
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x73
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x40eea0
push 2
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447444]
mov dword [esp + 0x1c], 0x8b3f
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x40ef5e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x1c]
lea edx, [eax + ecx]
add eax, 0x25
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x68723a25
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x53
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x1c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x40ef20
push 5
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44744c]
mov word [esp + 0x4c], 0x5cd1
mov dword [esp + 0x4e], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x40efd3
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x4c]
add eax, 0x56102af5
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x56
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x4c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x40efa0
push 2
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447454]
mov word [esp + 4], 0xd770
lea eax, [esp + 6]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x40f053
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x4b49ca7d
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x57
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x40f020
push 3
lea eax, [esp + 8]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44745c]
mov dword [esp + 0x11c], 0x5dcfbd
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x40f0c9
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x11c]
add eax, 0xaae5f286
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x2b
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x11c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb case.default.0x40f0e6
push 3
lea eax, [esp + 0x120]
push eax
push dword [esp + 0x18]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x447464]
mov word [esp + 0x98], 0xc8c
mov word [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40f159
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x63af83df
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x14
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40f120
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 4], 0x60f3
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x40f1c9
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xd5787c59
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0xc6
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x40f190
lea eax, [esp + 4]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0xaf3b
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x40f239
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xa61a6dfa
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0xac
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x40f200
lea eax, [esp + 4]
push eax
push dword [esp + 0x14]
call fcn.004034d0
add esp, 8
mov esi, eax
mov word [esp + 0x98], 0x6fe6
mov byte [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f2b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xb9e44297
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 9
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f280
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov dword [esp + 0x114], eax
mov dword [esp + 4], 0x6683
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x40f329
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xb2373a6
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x3f
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x40f2f0
mov dword [esp + 0x2c], esi
lea eax, [esp + 4]
push eax
push dword [esp + 0x14]
call fcn.004033a0
add esp, 8
mov word [esp + 0x98], 0x1c20
mov byte [esp + 0x9a], 0x88
mov dword [esp + 0x9b], 0
fnstcw word [esp + 0x106]
movzx eax, word [esp + 0x106]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x134]
fldcw word [esp + 0x106]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x28], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f3e9
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x8cab6b77
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0xf
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f3b0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.004033a0
add esp, 8
xor esi, esi
mov edi, 0xfffffffe
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40f410
fnstcw word [esp + 0x104]
movzx eax, word [esp + 0x104]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x130]
fldcw word [esp + 0x104]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x40], eax
lea eax, [edi + 2]
test esi, esi
jns 0x40f464
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
add edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
cmp eax, edi
mov ecx, dword [esp + 0x18]
jae 0x40f4dd
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp ecx, ebx
jae 0x40f4dd
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp byte [ecx], 0
je 0x40f4dd
lea eax, [esp + 0x98]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x10], edx
cmp edx, edi
jae 0x40f4dd
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x40f4a2
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x4c]
mov esi, dword [esp + 0x14]
push esi
call fcn.0043dbe0
jmp dword [0x44746c]
push esi
call fcn.00409a60
add esp, 4
lea ecx, [esp + 0x4c]
push 0x400
call fcn.0043de20
not eax
shr eax, 0x1f
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
jmp dword [eax*4 + 0x447474]
jmp dword [0x447488]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4473a4]
jmp dword [0x44755c]
mov word [esp + 0x98], 0xe867
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f5d2
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + 0xf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc0eb240f
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f590
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov word [esp + 0x98], 0x168f
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f656
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + ecx]
add eax, 0xef
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x34ce03ef
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
add al, 0x1a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f610
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
jmp case.0x41151c.50
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
jmp dword [0x447568]
mov word [esp + 0x98], 0xe867
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f6f2
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + 0xf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc0eb240f
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f6b0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x98], 0x168f
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f670
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + ecx]
add eax, 0xef
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x34ce03ef
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
add al, 0x1a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f740
jmp 0x40f670
mov word [esp + 0x98], 0xdb6c
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f7f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x3bdcdbbb
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x99
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f7c0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x98], 0xae17
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f879
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x2347f289
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0xdc
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f840
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x14]
call fcn.00403270
add esp, 8
mov esi, dword [esp + 0x18]
test esi, esi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x4475e4]
mov ecx, esi
mov edx, esi
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40f8b0
mov dword [esp + 0x14], eax
xor edi, edi
cmp ebx, edx
jbe 0x40f8fd
cmp byte [edx], 0
je 0x40f8fd
xor edi, edi
mov esi, dword [esp + 0x18]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d600
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x40f8fd
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40f8d0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f90b
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jae 0x40fcd6
mov edi, dword [esp + 0x38]
cmp esi, ebx
jae 0x40fcd6
mov edi, dword [esp + 0x38]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40fcd6
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40fcd2
add esi, eax
cmp esi, ebx
mov eax, dword [esp + 0x14]
jb 0x40f950
jmp 0x40fcd6
sete al
movzx eax, al
jmp dword [eax*4 + 0x4473ac]
mov esi, dword [esp + 0x14]
test esi, esi
sete cl
test eax, eax
sete dl
or dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x44756c]
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40fbf0
mov dword [esp + 0x10], eax
xor edi, edi
cmp ebx, esi
jbe 0x40fc3d
cmp byte [esi], 0
je 0x40fc3d
xor edi, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d600
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x40fc3d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40fc10
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40fc4b
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jae 0x410247
mov edi, dword [esp + 0x28]
cmp esi, ebx
jae 0x410247
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x410247
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x410243
add esi, eax
cmp esi, ebx
mov eax, dword [esp + 0x10]
jb 0x40fc90
jmp 0x410247
mov eax, dword [esp + 0x14]
mov word [edi], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40fcf0
lea eax, [edi + 2]
test esi, esi
jns 0x40fd08
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
add edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], eax
cmp eax, edi
mov ecx, dword [esp + 0x14]
jae 0x40fd8b
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
cmp ecx, ebx
jae 0x40fd8b
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40fd8b
lea eax, [esp + 0x98]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x10], edx
cmp edx, edi
jae 0x40fd8b
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x40fd50
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 4], 0xb6cdd9
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x40fdf2
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + 0x34]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x74c5934
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x80
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x40fdb0
lea eax, [esp + 4]
push eax
push dword [ebp + 8]
call fcn.004034d0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x40], eax
test eax, eax
setne cl
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
jmp dword [ecx*4 + 0x4475ec]
lea ecx, [esp + 0x98]
push 3
call fcn.0040a230
push dword [esp + 0x28]
mov esi, dword [esp + 0x30]
push esi
push dword [esp + 0x50]
push dword [esp + 0x44]
lea eax, [esp + 0xa8]
push eax
call fcn.004165e0
add esp, 0x14
lea ecx, [esp + 0x98]
call fcn.0040aaf0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44762c]
mov edx, esi
add esi, 0xfffffffc
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x447634]
push esi
call fcn.00409a60
add esp, 4
lea edi, [esp + 0x9a]
jmp dword [0x447644]
jmp dword [0x44764c]
add edi, 0xfffffff4
xor eax, eax
cmp edi, dword [esp + 0x2c]
sete al
jmp dword [eax*4 + 0x44763c]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x40feb0
push eax
call fcn.00409a60
add esp, 4
jmp 0x40feb0
push dword [esp + 0x40]
call fcn.00403a20
add esp, 4
mov dword [esp + 0x28], eax
mov eax, dword [case.0x41151c.91]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x28]
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40ff11
mov esi, eax
test dl, dl
jne 0x40ff17
mov ecx, esi
push ecx
call fcn.00409a50
add esp, 4
mov edx, dword [esp + 0x28]
mov dword [eax], edx
add eax, 4
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x447604]
mov edx, dword [case.0x41151c.97]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
lea esi, [eax + ecx*4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
jmp edx
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x44761c]
mov dword [esp + 0x2c], eax
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x447624]
mov word [esi], 0
mov ecx, dword [esp + 0x14]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x28]
setb al
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
jmp dword [eax*4 + 0x447624]
mov dword [esp + 0x14], ecx
push ecx
push dword [esp + 0x44]
call fcn.00403a30
add esp, 8
mov esi, eax
mov dword [esp + 4], 0x7ae9e7
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x410039
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xffcb9303
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x81
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x410000
lea eax, [esp + 4]
push eax
push esi
call fcn.00403270
add esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb32ad6
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x4100b6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + ecx]
add eax, 0xa0
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x8ca982a0
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0x98]
add al, 0xef
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x410070
lea eax, [esp + 4]
push eax
push esi
call fcn.00403270
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x98], 0x1ded
mov byte [esp + 0x9a], 0x8a
mov byte [edi + 5], 0
mov dword [edi + 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x410139
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xc1b8dc90
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0xe8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x410100
lea eax, [esp + 0x98]
push eax
push esi
call fcn.00403270
add esp, 8
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x2c]
lea esi, [edx + ecx*4]
mov dword [esp + 0x10], esi
mov dword [edx + ecx*4], 0
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x18]
lea edi, [eax - 1]
mov ebx, 0xffffffff
mov eax, 0xfffffffe
nop
nop
nop
nop
inc ebx
add eax, 2
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x410180
and eax, 2
xor ebx, 1
add ebx, eax
jns 0x4101a0
mov eax, 0xffffffff
jmp 0x4101a3
lea eax, [ebx + ebx]
push eax
call fcn.00409a50
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [eax], esi
mov dword [esp + 0x98], 0
mov ecx, dword [esp + 0x18]
cmp edi, ecx
jbe 0x40ffa0
lea eax, [esi + ebx*2]
add eax, 0xfffffffe
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x40ffa0
nop
nop
nop
cmp byte [ecx], 0
je 0x40ffa0
lea eax, [esp + 0x98]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40ffa0
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x4101e0
jmp 0x40ffa0
jmp dword [0x447644]
push dword [esp + 0x38]
call fcn.00409a60
add esp, 4
jmp dword [0x44764c]
push dword [esp + 0x48]
jmp 0x4106ff
mov eax, dword [esp + 0x10]
mov word [edi], 0
lea esi, [eax - 1]
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x410250
xor ebx, ebx
cmp eax, esi
jae 0x41029d
cmp byte [eax], 0
je 0x41029d
xor ebx, ebx
mov edi, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push edi
call fcn.0040d600
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x41029d
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410270
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4102ab
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x10]
jae 0x410315
mov edi, dword [esp + 0x40]
cmp ecx, esi
jae 0x410315
mov edi, dword [esp + 0x40]
cmp byte [ecx], 0
je 0x410315
lea eax, [esp + 0x98]
push eax
push esi
mov ebx, ecx
push ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x410315
mov ecx, ebx
add ecx, eax
cmp ecx, esi
jb 0x4102e0
mov word [edi], 0
mov word [esp + 0x98], 0x85bd
mov byte [esp + 0x9a], 0x1c
mov word [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410389
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xaeaceee7
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0xb
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410350
lea eax, [esp + 0x98]
push eax
push dword [ebp + 8]
call fcn.004034d0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x2c], eax
test eax, eax
setne cl
mov dword [esp + 0x14], 0
xor ebx, ebx
jmp dword [ecx*4 + 0x447574]
push dword [esp + 0x2c]
call fcn.00403a20
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 0x4103e5
mov esi, eax
test dl, dl
jne 0x4103eb
mov ecx, esi
push ecx
call fcn.00409a50
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x18], ebx
jmp dword [eax*4 + 0x44757c]
mov edx, dword [case.0x41151c.62]
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
jmp edx
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 + 0x447594]
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x44759c]
push edi
push dword [esp + 0x30]
call fcn.00403a30
add esp, 8
mov ebx, eax
mov word [esp + 0x98], 0x6b65
mov byte [esp + 0x9a], 0xc4
lea eax, [esp + 0x9a]
mov byte [eax + 3], 0
mov word [eax + 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x410509
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x8b9d76b3
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x8f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x4104d0
lea eax, [esp + 0x98]
push eax
push ebx
call fcn.00403270
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x691400
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x410584
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + ecx]
add eax, 0x68
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x1b809e68
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0x98]
add al, 0xfd
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x410540
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403270
add esp, 8
mov esi, eax
mov dword [esp + 4], 0x62c3c4f3
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 3
ja 0x4105e9
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xc5db9197
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 8
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 4
jb 0x4105b0
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403600
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [edi + edi*2]
mov ebx, dword [esp + 0x18]
lea ecx, [ebx + eax*4]
push edx
push dword [esp + 0x14]
push esi
call fcn.004139d0
inc edi
xor eax, eax
cmp edi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x44759c]
jmp dword [0x4475b0]
lea esi, [esp + 0x98]
mov ecx, esi
push 2
call fcn.0040a230
push dword [esp + 0x14]
push ebx
push dword [esp + 0x48]
push dword [esp + 0x34]
push esi
call fcn.00413e80
add esp, 0x14
mov ecx, esi
call fcn.0040aaf0
movzx eax, al
jmp dword [eax*4 + 0x4475b4]
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xe], 0
cmp eax, 0x3ff
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
ja 0x410743
mov byte [esp + 0xd], 0x30
lea esi, [esp + 0xd]
jmp 0x4107eb
xor eax, eax
test ebx, ebx
sete al
mov edx, ebx
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
jmp dword [eax*4 + 0x4475bc]
lea eax, [edx - 4]
mov dword [esp + 0x10], eax
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
mov esi, edx
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4475c4]
push dword [esp + 0x10]
call fcn.00409a60
add esp, 4
lea edi, [esp + 0x9a]
jmp dword [0x4475d4]
jmp dword [0x4475dc]
push dword [esp + 0x28]
call fcn.00409a60
add esp, 4
jmp case.0x41151c.83
add edi, 0xfffffff4
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x4475cc]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x410731
push eax
call fcn.00409a60
add esp, 4
mov eax, dword [edi - 8]
test eax, eax
je 0x410710
push eax
call fcn.00409a60
add esp, 4
jmp 0x410710
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xe]
cmp eax, 0x19000
jb 0x4107b4
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 edi, edx, 0x64
mov eax, ecx
sub eax, edi
mov edi, eax
and edi, 2
mov ebx, eax
or eax, 2
imul eax, edi
xor edi, 2
and ebx, 0x7d
imul ebx, edi
movzx eax, word [ebx + eax + 0x444318]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x410760
cmp edx, 9
ja 0x4107bb
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x4107e0
mov edx, ecx
cmp edx, 9
jbe 0x4107a7
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0x7d
imul ecx, eax
movzx eax, word [ecx + edx + 0x444318]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
mov dword [esp + 0x3c], 0xb548710d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 3
ja 0x410843
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xd91756cb
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add al, 0x85
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 4
jb 0x410810
mov dword [esp + 0x4c], 0x44477950
mov dword [esp + 0x50], 0x32744240
mov dword [esp + 0x54], 0x4a747d7d
mov dword [esp + 0x58], 0x46397472
mov dword [esp + 0x5c], 0x6b56244c
mov dword [esp + 0x60], 0x61216c51
mov dword [esp + 0x64], 0x5b5a5e6b
mov dword [esp + 0x68], 0x2a5c5566
mov dword [esp + 0x6c], 0x1d16155b
mov dword [esp + 0x70], 0x2e512c1a
mov dword [esp + 0x74], 0x16215c24
mov dword [esp + 0x78], 0x172a5812
mov dword [esp + 0x7c], 0x34083a29
mov dword [esp + 0x80], 0x353d4073
mov dword [esp + 0x84], 0x4e390d3f
mov dword [esp + 0x88], 0x10a093f
mov dword [esp + 0x8c], 0x5750806
mov dword [esp + 0x90], 0x483c0a3e
mov dword [esp + 0x94], 0x9c73
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x4b
ja 0x410940
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x4c]
add eax, 0xa2e7f01f
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, eax
xor ecx, 0xf4
and eax, 0xb
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x4c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x4c
jb 0x410900
lea eax, [0x44c09b]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x410950
movzx ecx, byte [esp + 0x4c]
test cl, cl
je 0x41097f
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0x4d]
inc edx
test cl, cl
jne 0x410970
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x41099b
inc esi
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x410990
mov byte [eax], 0
movzx ecx, byte [esp + 0x3c]
test cl, cl
je 0x4109bb
lea edx, [esp + 0x3d]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4109b0
mov byte [eax], 0
xor eax, eax
mov edx, dword [esp + 0x18]
test edx, edx
sete al
jmp dword [eax*4 + 0x4475bc]
jmp dword [0x4475d4]
push dword [esp + 0x40]
call fcn.00409a60
add esp, 4
jmp dword [0x4475dc]
lea ecx, [esp + 0x98]
call fcn.0040a270
jmp case.0x40f8a0.1
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x98], 0x7a79787f
mov dword [esp + 0x9c], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 7
ja 0x4113ac
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0x98]
lea esi, [eax + edx]
add esi, 0x6ea68513
add eax, 0x6ea68513
not edx
or eax, edx
sub edx, eax
lea eax, [esi + edx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x93
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0x98], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 8
jb 0x411363
mov eax, dword [esp + 0x98]
mov edx, dword [0x44d0a8]
test edx, edx
je case.default.0x411420
xor esi, esi
mov edi, dword [0x44d0ac]
cmp dword [edi + esi*8], 0x1b788dcf
je 0x4113ea
mov ebx, esi
and ebx, 1
xor esi, 1
lea esi, [esi + ebx*2]
mov ebx, dword [esp + 0x44]
cmp esi, edx
jb 0x4113c5
lea edi, [esp + 0x9a]
jmp case.default.0x411420
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
lea edi, [esp + 0x9a]
je case.default.0x411420
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x44d0b0]
push edx
call fcn.0043f8b0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x44748c]
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.0043dab0
add esp, 4
mov dword [esp + 0x10c], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x98], 0x7a79787f
mov dword [esp + 0x9c], 0
add edx, 2
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 7
ja 0x4114b9
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
movzx esi, byte [esp + esi + 0x98]
lea edi, [eax + esi]
add edi, 0x6ea68513
add eax, 0x6ea68513
not esi
or eax, esi
sub esi, eax
lea eax, [edi + esi*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x93
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x98], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 8
jb 0x411470
mov eax, dword [esp + 0x98]
mov esi, dword [0x44d0a8]
test esi, esi
je case.default.0x41151c
xor edi, edi
mov ebx, dword [0x44d0ac]
cmp dword [ebx + edi*8], 0x1b788dcf
je 0x4114e6
inc edi
cmp esi, edi
jne 0x4114d2
mov ebx, dword [esp + 0x44]
jmp case.default.0x41151c
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
mov ebx, dword [esp + 0x44]
je case.default.0x41151c
push 0
push edx
push dword [esp + 0x114]
push 0x2b
push ecx
push 5
push dword [0x44d0b0]
push esi
call fcn.0043f8b0
add esp, 0x20
not eax
shr eax, 0x1f
lea edi, [esp + 0x9a]
jmp dword [eax*4 + 0x447494]
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x411529
mov edi, esi
sub edi, ecx
mov eax, edi
inc eax
mov dword [esp + 0x48], eax
lea eax, [edi + edi + 2]
jns 0x411547
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x38]
jae 0x4115ad
mov edi, dword [esp + 0x18]
cmp ebx, esi
jae 0x4115ad
mov edi, dword [esp + 0x18]
cmp byte [ebx], 0
je 0x4115ad
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x4115ad
add ebx, eax
cmp ebx, esi
jb 0x41157c
mov word [edi], 0
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
mov dword [esp + 0x14], ecx
lea esi, [ecx + eax]
add esi, 0xfffffffe
mov ecx, dword [case.0x41151c.5]
mov edx, dword [case.0x41151c.14]
mov dword [esp + 0x10], esi
nop
nop
nop
nop
jmp ecx
xor eax, eax
cmp esi, dword [esp + 0x14]
setae al
mov ebx, dword [esp + 0x10]
jmp dword [eax*4 + 0x4474ac]
movzx edi, word [esi]
xor eax, eax
test di, di
setne al
mov ebx, dword [esp + 0x10]
jmp dword [eax*4 + 0x4474b4]
xor eax, eax
cmp di, 0x5c
sete al
mov ebx, esi
jmp dword [eax*4 + 0x4474bc]
jmp edx
add esi, 0xfffffffe
jmp case.0x41151c.2
mov eax, ebx
not eax
mov esi, dword [esp + 0x14]
and eax, esi
not esi
and esi, ebx
mov dword [esp + 0x14], esi
mov edi, eax
sub esi, eax
sar esi, 1
mov ecx, dword [esp + 0x48]
add ecx, esi
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x411651
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x10], eax
mov ebx, eax
cmp dword [esp + 0x14], edi
je 0x411710
mov eax, dword [esp + 0x10c]
mov eax, dword [eax + 4]
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x4116b5
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], ecx
xor edi, edi
mov ebx, dword [esp + 0x10]
movzx ecx, word [eax]
mov esi, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, esi
mov word [ebx], cx
add ebx, 2
inc edi
cmp esi, edi
jne 0x41168c
mov esi, dword [esp + 0x38]
sub esi, edi
mov ecx, dword [esp + 0x14]
jmp 0x4116b9
mov ebx, dword [esp + 0x10]
cmp ecx, 3
jb 0x411710
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x4116be
mov edx, dword [esp + 0x18]
movzx eax, word [edx]
test ax, ax
je 0x4117a1
mov ecx, edx
add ecx, 2
mov esi, dword [esp + 0x10]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411729
mov word [ebx], 0
jmp dword [0x4474d4]
push edx
call fcn.00409a60
add esp, 4
sub ebx, esi
mov eax, 0xffffffff
cmp ebx, 0xfffffffe
jl 0x41175f
add ebx, 2
mov eax, ebx
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x48], eax
push eax
push esi
call fcn.0043a530
add esp, 8
jmp dword [0x4474ec]
push esi
call fcn.00409a60
add esp, 4
mov ecx, dword [esp + 0x114]
mov eax, ecx
jmp 0x411c43
mov ecx, dword [esp + 0x114]
mov edi, ecx
jmp 0x411c3b
mov esi, dword [esp + 0x10]
mov word [ebx], 0
jmp dword [0x4474d4]
jmp dword [0x447544]
push dword [esp + 0x48]
call fcn.00409a60
add esp, 4
jmp dword [0x447550]
jmp dword [0x447508]
jmp dword [0x44750c]
push dword [esp + 0x38]
call fcn.00409a60
add esp, 4
jmp dword [0x447544]
jmp dword [0x447550]
inc dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
push esi
call fcn.00403a20
add esp, 4
xor ecx, ecx
mov edx, dword [esp + 0x14]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x4474f4]
push edx
push esi
call fcn.00403a00
add esp, 8
push eax
call fcn.00403380
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x447514]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x411a80
mov ebx, edi
sub ebx, esi
mov eax, ebx
inc eax
jns 0x411a98
mov eax, 0xffffffff
jmp 0x411a9f
lea eax, [ebx*2 + 2]
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 4], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x411afb
mov ebx, dword [esp + 0x18]
cmp esi, edi
jae 0x411afb
mov ebx, dword [esp + 0x18]
nop
nop
nop
cmp byte [esi], 0
je 0x411afb
lea eax, [esp + 4]
push eax
push edi
push esi
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 4]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x411afb
add esi, eax
cmp esi, edi
jb 0x411ad0
mov word [ebx], 0
push 0
push 0
push dword [esp + 0x30]
push dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
push esi
push dword [esp + 0x5c]
push dword [esp + 0x50]
lea eax, [esp + 0xb4]
push eax
call fcn.0041a3f0
add esp, 0x20
jmp dword [0x44751c]
jmp dword [0x447528]
mov eax, dword [case.0x41151c.33]
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push esi
call fcn.00409a60
add esp, 4
push esi
call fcn.00409a60
add esp, 4
jmp dword [0x447530]
lea esi, [esp + 0x98]
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.0040a270
lea esi, [esp + 0x98]
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.0040a270
jmp dword [0x447558]
push dword [esp + 0x10c]
call fcn.0043db40
add esp, 4
lea ecx, [esp + 0x4c]
call fcn.0043dfa0
jmp case.0x40f8a0.1
lea eax, [edi + 1]
cmp byte [edi], 0
je 0x411c47
mov edi, eax
jmp 0x411c3b
push edi
push ecx
call fcn.00413980
add esp, 8
mov esi, eax
inc eax
lea eax, [esi + esi + 2]
jns 0x411c5f
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x114]
jae 0x411cc8
mov esi, dword [esp + 0x38]
cmp ebx, edi
jae 0x411cc8
mov esi, dword [esp + 0x38]
cmp byte [ebx], 0
je 0x411cc8
lea eax, [esp + 0x98]
push eax
push edi
push ebx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x411cc8
add ebx, eax
cmp ebx, edi
jb 0x411c97
mov word [esi], 0
lea ecx, [esp + 0x98]
push 1
call fcn.0040a230
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x9a]
jmp 0x411a2d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [case.0x40ffbe.17]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
lea edi, [esp + 0x104]
mov dword [esp + 0x24], esi
jmp 0x411d8b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
push esi
call fcn.00403a20
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44766c]
push ebx
push esi
call fcn.00403a30
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x104], 0x1aa0
mov byte [esp + 0x108], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 4
ja 0x411e28
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0x104]
add eax, 0x358df87b
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x9a
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x104], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 5
jb 0x411de0
push 2
push edi
push dword [esp + 0x20]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447674]
mov word [esp + 0x3c], 0x245b
mov byte [esp + 0x3e], 0xb7
mov dword [esp + 0x3f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x411eab
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add eax, 0xe2
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x9ebe0fe2
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0xad
mov ecx, dword [esp]
mov byte [esp + ecx + 0x3c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x411e70
push 3
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x20]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44768c]
nop
nop
nop
nop
jmp dword [0x4476a8]
mov word [esp + 0xa0], 0x214d
lea eax, [esp + 0xa2]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x411f44
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xa2285ab4
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x6c
mov ecx, dword [esp]
mov byte [esp + ecx + 0xa0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x411f10
push 3
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x20]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x447694]
mov word [esp + 0x104], 0x40da
lea eax, [esp + 0x106]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 6
ja 0x411ff5
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0x104]
lea edx, [eax + ecx]
add edx, 0xc3ecd5b7
add eax, 0xc3ecd5b7
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
add al, 8
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x104], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 7
jb 0x411fa0
push edi
push dword [esp + 0x1c]
call fcn.00403270
add esp, 8
mov edi, eax
mov word [esp + 0x104], 0x596c
mov byte [esp + 0x106], 0xcc
lea eax, [esp + 0x106]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 7
ja 0x412088
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0x104]
add eax, 0xcb6c64b3
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x87
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x104], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 8
jb 0x412040
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x104]
push eax
push dword [esp + 0x1c]
call fcn.004033a0
add esp, 8
mov word [esp + 0x104], 0x2d8d
lea eax, [esp + 0x106]
mov word [eax + 4], 0
mov dword [eax], 0
fnstcw word [esp + 0x9e]
movzx eax, word [esp + 0x9e]
or eax, 0xc00
mov word [esp + 0xea], ax
fldcw word [esp + 0xea]
fistp dword [esp + 0x100]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 7
ja 0x412158
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0x104]
add eax, 0xc8ac6953
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x87
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x104], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 8
jb 0x412110
lea eax, [esp + 0x104]
push eax
push dword [esp + 0x1c]
call fcn.004033a0
add esp, 8
lea ebx, [edi - 1]
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412170
fnstcw word [esp + 0x9c]
movzx eax, word [esp + 0x9c]
or eax, 0xc00
mov word [esp + 0xe8], ax
fldcw word [esp + 0xe8]
fistp dword [esp + 0xfc]
fldcw word [esp + 0x9c]
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x104]
cmp edi, ebx
jae 0x41221a
xor esi, esi
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41220e
lea eax, [esp + 0x3c]
push eax
push ebx
push edi
call fcn.0040d600
add esp, 0xc
movzx edx, word [esp + 0x3c]
lea ecx, [esi + 2]
mov word [esp + esi + 0x104], dx
cmp esi, 0x7fb
ja 0x412204
add edi, eax
mov esi, ecx
cmp edi, ebx
jb 0x4121d0
lea eax, [esp + ecx]
add eax, 0x104
jmp 0x412216
lea eax, [esp + esi]
add eax, 0x104
mov esi, dword [esp + 0x24]
mov word [eax], 0
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x34]
push eax
lea edi, [esp + 0x10c]
push edi
call fcn.0040be10
add esp, 0xc
movzx eax, al
mov ebx, dword [esp + 0x28]
jmp dword [eax*4 + 0x4476ac]
xor eax, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
sete al
mov dword [esp + 0xf8], eax
jmp dword [eax*4 + 0x4476b4]
xor ecx, 1
mov edx, ecx
mov ecx, dword [esp + 0x2c]
xor ecx, 2
xor eax, eax
or ecx, edx
sete al
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp dword [eax*4 + 0x44774c]
mov esi, dword [esp + 0x30]
movzx ecx, byte [esi]
xor eax, eax
test cl, cl
je 0x4122b1
lea edx, [esi + 1]
xor eax, eax
nop
shr cl, 7
movzx ecx, cl
add eax, ecx
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4122a0
mov ecx, eax
and ecx, 1
xor eax, 1
lea edi, [eax + ecx*2]
lea eax, [edi + edi]
test edi, edi
jns 0x4122c8
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x3c], 0
lea ecx, [eax + edi*2]
add ecx, 0xfffffffe
mov edi, eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov dword [esp + 0x34], eax
jae 0x41232b
mov edi, eax
test ebx, ebx
jle 0x41232b
add ebx, esi
mov edi, eax
nop
nop
cmp byte [esi], 0
je 0x41232b
lea eax, [esp + 0x3c]
push eax
push ebx
push esi
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x41232b
add esi, eax
cmp esi, ebx
jb 0x412300
mov word [edi], 0
mov ecx, dword [esp + 0xe4]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x412348
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], 0xb745b140
mov dword [esp + 0x40], 0xbb5fb54f
mov dword [esp + 0x44], 0xbf49b94e
mov dword [esp + 0x48], 0x43a7bd54
mov dword [esp + 0x4c], 0x47aa41ac
mov dword [esp + 0x50], 0x4b674564
mov dword [esp + 0x54], 0x4fb649ad
mov dword [esp + 0x58], 0x53b54da9
mov dword [esp + 0x5c], 0x57b05170
mov dword [esp + 0x60], 0x5baa55ad
mov dword [esp + 0x64], 0x5fa959b9
mov dword [esp + 0x68], 0x63425dab
mov word [esp + 0x6c], 0x6160
lea eax, [esp + 0x3e]
mov byte [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x36
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
lea edi, [esp + 0x104]
ja 0x412429
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x109072f2
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xbe
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x37
jb 0x4123f0
movzx ecx, word [esp + 0x3c]
mov eax, dword [esp + 0x1c]
test cx, cx
je 0x412451
lea edx, [esp + 0x3e]
mov eax, dword [esp + 0x1c]
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412440
mov word [eax], 0
mov edx, dword [esp + 0x34]
movzx ecx, word [edx]
test cx, cx
je 0x412481
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412470
mov word [eax], 0
mov dword [esp + 0x20], 0
jmp dword [0x447754]
push dword [esp + 0x34]
call fcn.00409a60
add esp, 4
jmp case.0x413648.1
mov dword [esp + 8], 0x7584
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 3
ja 0x412512
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x31337132
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0xba
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 8], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 4
jb 0x4124d0
lea eax, [esp + 8]
push eax
push dword [esp + 0x1c]
call fcn.00403270
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4476bc]
mov dword [esp + 0x3c], 0x2ea2a1a2
mov byte [esp + 0x40], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x412596
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add edx, 0xb866e415
add eax, 0xb866e415
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0xa0]
add al, 0x49
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x412550
mov eax, dword [esp + 0x3c]
push dword [eax + 0x14]
call fcn.0040a150
add esp, 4
call fcn.0040a160
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
mov ebx, 0x38e38e39
jmp dword [eax*4 + 0x4476cc]
call fcn.0040a160
mov ecx, eax
imul ebx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [esp + edi*2 + 0xa0], ax
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x4476cc]
mov word [esp + edi*2 + 0xa0], 0
mov dword [esp + 8], 0x419e43af
mov dword [esp + 0xc], 0x4d9d4f8b
mov dword [esp + 0x10], 0x49a14b9c
mov dword [esp + 0x14], 0x555657ec
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41268e
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 + 8]
lea edx, [eax + ecx]
add edx, 0x3fa7c223
add eax, 0x3fa7c223
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x99
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412650
movzx eax, word [esp + 8]
lea esi, [esp + 0x3c]
test ax, ax
mov ebx, dword [esp + 0x28]
je 0x4126c1
lea ecx, [esp + 0xa]
lea esi, [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4126b0
mov word [esi], 0
movzx eax, word [esp + 0xa0]
test ax, ax
je 0x4126f1
lea ecx, [esp + 0xa2]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4126e0
mov word [esi], 0
lea eax, [esp + 0x3c]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xec]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x44d0a4]
mov edi, dword [esp + 0xec]
mov eax, edi
and eax, 4
mov ecx, edi
xor ecx, 4
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x412734
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov ecx, eax
lea eax, [esp + 0xec]
push eax
push edi
mov edi, ecx
push ecx
push esi
lea eax, [esp + 0x4c]
push eax
push 0
call dword [0x44d0a4]
xor eax, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4476d4]
xor eax, eax
cmp ecx, 1
sete al
mov esi, dword [esp + 0x24]
jmp dword [eax*4 + 0x4476dc]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x4476e4]
jmp 0x412b21
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x4127a0
xor esi, esi
cmp ebx, eax
jbe 0x412966
mov dword [esp + 0x38], eax
cmp byte [eax], 0
je 0x41296a
xor esi, esi
mov edi, dword [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x3c]
push eax
push ebx
push edi
call fcn.0040d600
add esp, 0xc
lea ecx, [edi + eax]
inc esi
cmp ecx, ebx
jae 0x41296a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4127d0
jmp 0x41296a
mov dword [esp + 8], 0x18a61aef
mov dword [esp + 0xc], 0x14aa1691
mov word [esp + 0x10], 0x1215
lea eax, [esp + 0xa]
mov byte [eax + 0xa], 0
mov word [eax + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xc
mov esi, dword [esp + 0x24]
ja 0x412871
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x7060e573
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x92
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xd
jb 0x412840
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412880
movzx ecx, word [esp + 8]
test cx, cx
je 0x412ab3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x4128a0
jmp 0x412ab1
mov dword [esp + 8], 0x59f25f2a
mov dword [esp + 0xc], 0xa5ee5bec
mov word [esp + 0x10], 0xa7a4
mov dword [esp + 0x12], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x412921
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x2b51d879
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xdb
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x4128f0
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412930
movzx ecx, word [esp + 8]
test cx, cx
je 0x412ab3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x412950
jmp 0x412ab1
mov dword [esp + 0x38], eax
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412978
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x3c], 0
lea ecx, [eax + esi*2]
mov edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x38]
jae 0x412abe
mov edi, dword [esp + 0x34]
cmp ecx, ebx
jae 0x412abe
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412abe
lea eax, [esp + 0x3c]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x1c]
jae 0x412aba
add esi, eax
cmp esi, ebx
mov ecx, esi
mov esi, dword [esp + 0x20]
jb 0x4129c0
jmp 0x412abe
mov dword [esp + 8], 0x42334077
mov dword [esp + 0xc], 0x5e6c5cd0
mov word [esp + 0x10], 0x5859
mov dword [esp + 0x12], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x412a6e
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x683224cc
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
not ecx
and ecx, 0x8d
and eax, 0x72
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x412a30
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412a80
movzx ecx, word [esp + 8]
test cx, cx
je 0x412ab3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x412aa0
add eax, edx
mov word [eax], 0
jmp 0x412b21
mov esi, dword [esp + 0x20]
mov word [edi], 0
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push esi
mov ebx, dword [esp + 0x44]
push ebx
push 0
call dword [0x44d0a4]
mov edi, dword [esp + 0x3c]
lea eax, [edi + edi]
test edi, edi
jns 0x412aea
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov ecx, eax
lea eax, [esp + 0x3c]
push eax
push edi
mov edi, ecx
push ecx
push esi
push ebx
push 0
call dword [0x44d0a4]
mov eax, ebx
mov ebx, dword [esp + 0x28]
jmp dword [0x4476c4]
push eax
call fcn.00409a60
add esp, 4
mov esi, dword [esp + 0x24]
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x38], edi
push edi
call fcn.00441950
add esp, 0x1c
mov edi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4476ec]
jmp 0x412c42
push 0
push dword [esp + 0xe8]
push dword [esp + 0x38]
push dword [esp + 0x10]
call fcn.00442110
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x3c], 0x7a79787f
mov dword [esp + 0x40], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 7
ja 0x412beb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x3c]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xa0]
add cl, 0x93
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x3c], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 8
jb 0x412ba0
mov ecx, dword [0x44d0a8]
test ecx, ecx
je case.default.0x412c65
mov edx, dword [esp + 0x3c]
xor esi, esi
mov ebx, dword [0x44d0ac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x625b6034
je 0x412c20
inc esi
cmp ecx, esi
jne 0x412c10
jmp case.default.0x412c65
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je case.default.0x412c65
push eax
push 1
push dword [0x44d0b0]
push ecx
call fcn.0043f8b0
add esp, 0x10
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
push dword [esp + 0x30]
call fcn.0043db40
add esp, 4
mov dword [esp + 0x30], 0
not edi
shr edi, 0x1f
mov dword [esp + 0x1c], 0
xor eax, eax
jmp dword [edi*4 + 0x4476f4]
lea edi, [esp + 0x104]
jmp dword [eax*4 + 0x447744]
mov eax, dword [case.0x412c65.29]
nop
jmp eax
xor eax, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x44776c]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x447774]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44777c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0x44
push 0xc9be8534
push dword [0x44d09c]
call fcn.00440fc0
add esp, 8
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x40]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x3c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4477c4]
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], 0x7a79787f
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x412df3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x93
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x412db0
mov ecx, dword [0x44d0a8]
test ecx, ecx
je case.0x412c65.52
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44d0ac]
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x41364f
inc esi
cmp ecx, esi
jne 0x412e10
jmp case.0x412c65.52
jmp dword [0x447708]
xor eax, eax
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x44770c]
mov eax, ecx
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, 1
mov dword [esp + 0x1c], 0
jmp dword [ecx*4 + 0x44773c]
mov edx, dword [esp + 0x20]
mov ecx, edx
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x412e70
sub eax, edx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x412e8a
mov ecx, 0xffffffff
push ecx
call fcn.00409a50
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa0], 0x14156a49
lea eax, [esp + 0xa2]
mov byte [eax + 4], 0
mov word [eax + 2], 0
lea edi, [esp + 0x104]
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x412f09
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xaab030be
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x2b
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x412ed0
mov dword [esp + 0x3c], 0x3fa939aa
mov dword [esp + 0x40], 0x23973da7
mov dword [esp + 0x44], 0x27b521b4
mov dword [esp + 0x48], 0x2b8f258e
mov dword [esp + 0x4c], 0x2f842986
mov dword [esp + 0x50], 0x137f2d4e
mov dword [esp + 0x54], 0x178811b9
mov dword [esp + 0x58], 0x1bb115bd
mov dword [esp + 0x5c], 0x1fbe197a
mov dword [esp + 0x60], 0x38c1d81
mov dword [esp + 0x64], 0x79501a5
mov dword [esp + 0x68], 0xb640593
mov dword [esp + 0x6c], 0xfa20959
mov dword [esp + 0x70], 0x736a0d6e
mov word [esp + 0x74], 0x7172
lea eax, [esp + 0x3e]
mov word [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x3f
ja 0x412fce
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x98e03209
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xcd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x3c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x40
jb 0x412fa0
movzx ecx, word [esp + 0x3c]
mov eax, dword [esp + 0x1c]
test cx, cx
je 0x413001
lea edx, [esp + 0x3e]
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412ff0
mov word [eax], 0
mov edx, dword [esp + 0x20]
movzx ecx, word [edx]
test cx, cx
je 0x413031
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413020
mov word [eax], 0
movzx ecx, word [esp + 0xa0]
test cx, cx
je 0x413061
lea edx, [esp + 0xa2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413050
mov word [eax], 0
mov eax, 1
jmp dword [eax*4 + 0x447744]
sete al
movzx eax, al
jmp dword [eax*4 + 0x447784]
mov eax, dword [esp + 0xf8]
jmp dword [eax*4 + 0x44778c]
jmp dword [0x44779c]
mov word [esp + 0x3c], 0x92b5
mov byte [esp + 0x3e], 5
lea eax, [esp + 0x3e]
mov byte [eax + 3], 0
mov word [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x4130f9
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xa69ee8ef
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x4130c0
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x1c]
call fcn.00403270
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x3c], 0x9484
mov byte [esp + 0x3e], 0x27
lea eax, [esp + 0x3e]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
mov edi, dword [esp + 0x20]
ja 0x413179
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x65d28e09
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xd4
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x413140
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x1c]
call fcn.00403270
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4131bf
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x34]
test ecx, ecx
setne bl
mov dword [esp + 0xf4], ebx
jmp dword [ebx*4 + 0x447714]
xor edi, edi
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0x38], ecx
jmp dword [ecx*4 + 0x44771c]
mov ecx, edx
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x4131e0
sub ebx, edx
inc ebx
jmp 0x413391
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0x44
push 0xc9be8534
push dword [0x44d09c]
call fcn.00440fc0
add esp, 8
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x40]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x44]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447794]
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], 0x7a79787f
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x413333
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x93
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x4132f0
mov ecx, dword [0x44d0a8]
test ecx, ecx
je case.0x412c65.40
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44d0ac]
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x41368f
inc esi
cmp ecx, esi
jne 0x413350
jmp case.0x412c65.40
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne case.default.0x413388
sub edi, dword [esp + 0x34]
inc edi
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0x38], ecx
jmp dword [ecx*4 + 0x44771c]
xor ebx, ebx
mov dword [esp + 0x2c], edx
add eax, edi
lea ecx, [ebx + eax]
add ecx, 0xa
add eax, ebx
lea eax, [eax*2 + 0x14]
test ecx, ecx
jns 0x4133af
mov eax, 0xffffffff
mov dword [esp + 0xf0], ebx
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], 0x96289439
mov dword [esp + 0x40], 0x923d9021
mov dword [esp + 0x44], 0x9e299c27
mov dword [esp + 0x48], 0x9a6b986c
mov word [esp + 0x4c], 0x649b
lea eax, [esp + 0x3e]
mov byte [eax + 0x12], 0
mov word [eax + 0x10], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x14
ja 0x413449
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x24dd506f
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0x1c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x413410
movzx eax, word [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
test ax, ax
je 0x413471
lea ecx, [esp + 0x3e]
mov ebx, dword [esp + 0x1c]
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413460
mov dword [ebx], 0x220020
add ebx, 4
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx]
test ax, ax
mov edx, dword [esp + 0x2c]
je 0x4134a1
add ecx, 2
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413490
lea ecx, [ebx + 2]
mov word [ebx], 0x22
mov dword [esp + 0x18], ecx
jmp dword [0x447724]
push dword [esp + 0x20]
call fcn.00409a60
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0xf4]
jmp dword [eax*4 + 0x44772c]
mov eax, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
jmp dword [ecx*4 + 0x447734]
mov word [ecx], 0x2c
mov ecx, dword [esp + 0x34]
lea esi, [ecx - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x413510
lea eax, [ebx + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], 0
cmp edi, 2
jl 0x413581
cmp ecx, esi
jae 0x413581
lea eax, [ebx + edi*2]
add eax, 2
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x28]
nop
cmp byte [ecx], 0
je 0x413585
lea eax, [esp + 0x3c]
push eax
push esi
push ecx
mov edi, ecx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x20]
jae 0x4136b4
add edi, eax
cmp edi, esi
mov edx, dword [esp + 0x2c]
mov ecx, edi
jb 0x413540
jmp 0x413585
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov word [eax], 0
mov eax, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
jmp dword [ecx*4 + 0x447734]
mov ecx, dword [esp + 0x18]
mov word [ecx], 0x2c
lea esi, [edx - 1]
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x4135c0
lea edi, [ecx + 2]
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xf0]
cmp eax, 2
jl 0x41361f
cmp edx, esi
jae 0x41361f
lea eax, [ecx + eax*2]
mov dword [esp + 0x18], eax
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x41361f
lea eax, [esp + 0x3c]
push eax
push esi
push edx
mov ebx, edx
call fcn.0040d600
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x41361f
add ebx, eax
cmp ebx, esi
mov edx, ebx
jb 0x4135f0
mov word [edi], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
lea edi, [esp + 0x104]
mov eax, 1
jmp dword [eax*4 + 0x447744]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4136bd
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x104]
jmp dword [ecx*4 + 0x4477cc]
push eax
call fcn.0043db40
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x20]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4477d4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4136ec
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x104]
jmp dword [ecx*4 + 0x4477cc]
mov edx, dword [esp + 0x2c]
jmp 0x413585
push eax
push 1
push dword [0x44d0b0]
push ecx
call fcn.0043f8b0
add esp, 0x10
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x104]
jmp dword [ecx*4 + 0x4477cc]
push eax
push 1
push dword [0x44d0b0]
push ecx
call fcn.0043f8b0
add esp, 0x10
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x104]
jmp dword [ecx*4 + 0x4477cc]
push dword [esp + 0x1c]
call fcn.00409a60
add esp, 4
jmp case.0x412243.0
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4477cc]
xor eax, eax
mov ecx, dword [esp + 0x20]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4477d4]
push ecx
call fcn.00409a60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x4477e4]
xor eax, eax
cmp dword [esp + 0x1c], 0
sete al
jmp dword [eax*4 + 0x4477ec]
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xb8797400
mov dword [esp + 0x3c], 0x7a79787f
mov dword [esp + 0x40], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x4137f0
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x93
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x4137b0
mov ecx, dword [0x44d0a8]
test ecx, ecx
je 0x413848
mov edx, dword [esp + 0x3c]
xor esi, esi
mov edi, dword [0x44d0ac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e28bda7
je 0x413820
inc esi
cmp ecx, esi
jne 0x413810
jmp 0x413848
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x413848
lea edx, [esp + 0xa0]
push edx
push 0
push eax
push 3
push dword [0x44d0b0]
push ecx
mov esi, eax
call fcn.0043f8b0
mov eax, esi
add esp, 0x18
mov dword [esp + 0x3c], 0x7a79787f
mov dword [esp + 0x40], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x4138b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
lea esi, [ecx + edx]
add esi, 0x6ea68513
add ecx, 0x6ea68513
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x93
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x413870
mov ecx, dword [0x44d0a8]
test ecx, ecx
je 0x4138fa
mov edx, dword [esp + 0x3c]
xor esi, esi
mov edi, dword [0x44d0ac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x4138e0
inc esi
cmp ecx, esi
jne 0x4138d0
jmp 0x4138fa
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x4138fa
push eax
push 1
push dword [0x44d0b0]
push ecx
call fcn.0043f8b0
add esp, 0x10
mov eax, dword [case.0x412c65.34]
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x104]
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4477ac]
push 0x46483752
push dword [0x44d09c]
call fcn.00440fc0
add esp, 8
push 0
push 0
push dword [esp + 0x38]
push 0x41c410
push 0
push 0
call eax
push 0x46483752
push dword [0x44d09c]
call fcn.00440fc0
add esp, 8
push 0
push 0
push dword [esp + 0x38]
push 0x41c410
push 0
push 0
call eax
jmp dword [0x4477a8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
sbb eax, dword [ecx]
daa
adc al, 65
add byte [edx + 0x2300411b], bl
sbb eax, dword [ecx]
and edx, dword [0x15e00041]
sbb eax, dword [ecx]
and edx, dword [0x15e00041]
inc ecx
add al, ah
adc eax, 0x15e00041
inc ecx
add dl, ah
adc eax, 0x16270041
inc ecx
add dh, dh
adc eax, 0x16270041
inc ecx
add byte [esi + edx], cl
inc ecx
add byte [eax], ah
push ss
inc ecx
add byte [edi], ah
push ss
inc ecx
add byte [eax], ah
push ss
inc ecx
add byte [eax], ah
push ss
inc ecx
add byte [edx], ah
push ss
inc ecx
add byte [eax], ah
push ss
inc ecx
add byte [ebp + 0x17], al
inc ecx
add byte [esi + 0x17], cl
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi + 0x17], cl
inc ecx
add byte [edi + edx + 0x41], bh
add byte [ebx + 0x3c004117], dl
sbb byte [ecx], al
dec esp
sbb al, byte [ecx]
cmp al, 0x18
inc ecx
add byte [eax + ebx], bh
inc ecx
add byte [eax + ebx], bh
inc ecx
add byte [edx + 0x18], al
inc ecx
add byte [eax + 0x18], cl
inc ecx
add byte [eax + ebx], ah
inc ecx
add byte [edi + 0x1a], ch
inc ecx
add byte [ecx], ch
sbb al, byte [ecx]
das
sbb eax, dword [ecx]
xor eax, 0x5200411b
sbb eax, dword [ecx]
pop ebx
sbb eax, dword [ecx]
push edx
sbb eax, dword [ecx]
xor eax, 0x5000411b
sbb eax, dword [ecx]
push eax
sbb eax, dword [ecx]
sub dword [edx], ebx
inc ecx
add byte [eax + 0x1b], dl
inc ecx
add byte [edx], ch
sbb byte [ecx], al
pop edx
sbb byte [ecx], al
push 0x1b
inc ecx
add byte [edi + 0x1b], bh
inc ecx
add byte [edx + 0x1b], ch
inc ecx
add byte [edx - 0x75ffbee5], bl
test byte [eax], 0x64
cmc
inc eax
add byte [edx - 0x36ffbf0a], cl
sti
inc eax
add bl, ah
sti
inc eax
add byte [eax - 0x14], dl
inc eax
add byte [esi], dh
push es
inc ecx
add byte [eax + 0x11004103], bh
add al, 0x41
add byte [edx + 4], ah
inc ecx
add byte [eax], dh
add al, 0x41
add byte [eax], dh
add al, 0x41
add byte [eax + 4], al
inc ecx
add byte [eax], dh
add al, 0x41
add byte [eax + 4], al
inc ecx
add byte [edx + 4], ah
inc ecx
add byte [eax], dh
push es
inc ecx
add byte [eax + 0x30004104], al
push es
inc ecx
add byte [eax], dh
push es
inc ecx
add byte [eax], dh
push es
inc ecx
add byte [esi], dh
push es
inc ecx
add byte [ebp + 6], ch
inc ecx
add byte [ecx - 0x43ffbefa], ah
push es
inc ecx
add al, dl
or dword [ecx], eax
and dword [edi], eax
inc ecx
add ah, bl
push es
inc ecx
add byte [ecx], ah
pop es
inc ecx
add ah, bl
push es
inc ecx
add dh, dl
or dword [ecx], eax
cmc
push es
inc ecx
add bl, bh
push es
inc ecx
add al, ch
or dword [ecx], eax
cmpsd dword [esi], dword es:[edi]
clc
inc eax
add byte [eax - 0x14], dl
inc eax
add byte [edi], ch
inc byte [eax]
aad 0xfe
inc eax
add al, dh
inc byte [eax]
lock inc byte [eax]
lock inc byte [eax]
inc byte [eax]
aaa
inc dword [eax]
test edi, edi
inc eax
add byte [eax - 1], dl
inc eax
add byte [eax - 1], dl
inc eax
add byte [eax - 1], dl
inc eax
add byte [eax - 1], ah
inc eax
add byte [eax - 1], ah
inc eax
add byte [ebp + 0x2f0040ff], al
inc byte [eax]
invalid
push ds
inc ecx
add byte [ebp + 0x1e], al
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x39], bh
inc ecx
add ah, cl
push ds
inc ecx
add al, ah
push ds
inc ecx
add byte [eax + 0x1f], ch
inc ecx
add al, dl
push ds
inc ecx
add al, dl
push ds
inc ecx
add al, dl
push ds
inc ecx
add al, dl
push ds
inc ecx
add byte [eax + 0x7100411d], al
sbb eax, 0x224a0041
inc ecx
add byte [ebx + 0x22], ah
inc ecx
add byte [ebp + 0x31004124], ah
and eax, 0x27920041
inc ecx
add byte [ebx + ebp], dl
inc ecx
add byte [0xa00412b], bl
inc ecx
add al, dl
and eax, 0x276b0041
inc ecx
add byte [eax], al
sub byte [ecx], al
jle 0x447705
inc ecx
add byte [esi - 0x72ffbed8], dh
daa
inc ecx
add byte [eax], al
sub al, byte [ecx]
push ecx
sub eax, dword [ecx]
push esi
sub eax, dword [ecx]
insb byte es:[edi], dx
sub al, 65
add byte [eax], dh
inc ecx
add byte [eax], dh
inc ecx
add byte [eax], dh
inc ecx
add byte [eax], dh
inc ecx
add byte [esi], dh
inc ecx
add byte [ecx + 0x2e], cl
inc ecx
add byte [ebx - 0x39ffbed0], dl
xor dword [ecx], eax
xor eax, dword [bx + di]
invalid