Function at 0x41546a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x178
mov word [esp + 0x58], 0x4da3
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x410fb1
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 + 0x58]
lea edx, [eax + ecx]
add edx, 0xec8a
add eax, 0xec8a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x3a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410f70
lea eax, [esp + 0x58]
push eax
push dword [ebp + 8]
call fcn.00402960
add esp, 8
mov edi, eax
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442838]
inc edx
mov esi, edx
jmp dword [0x442a10]
push dword [esp + 0x14]
call fcn.00409240
add esp, 4
lea ebx, [esp + 0x58]
jmp dword [0x442a18]
lea ebx, [esp + 0x58]
jmp dword [0x442a18]
jmp dword [0x442a24]
push esi
call fcn.00402ed0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x4429e0]
mov dword [esp + 0x1c], ebx
push ebx
push esi
call fcn.00402eb0
add esp, 8
push eax
call fcn.00402800
add esp, 4
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4429e8]
mov eax, ebx
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x411080
sub esi, ebx
mov eax, esi
and eax, 1
mov ecx, esi
xor ecx, 1
lea eax, [ecx + eax*2]
test eax, eax
jns 0x4110b0
mov eax, 0xffffffff
jmp 0x4110b2
add eax, eax
push eax
call fcn.00409230
add esp, 4
mov edx, esi
test ebx, ebx
jne 0x4110d9
mov edx, ebx
not edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x4110d0
mov dword [esp], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x411140
mov esi, dword [esp + 0x24]
test edx, edx
jle 0x411140
mov edi, ebx
add edi, edx
mov esi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411140
mov eax, esp
push eax
push edi
push ebx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x411140
add ebx, eax
cmp ebx, edi
jb 0x411110
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], 0
push 0
push 0
push dword [esp + 0xe4]
push dword [esp + 0x158]
mov ebx, dword [esp + 0x34]
push ebx
push dword [esp + 0xd8]
push dword [esp + 0x2c]
lea eax, [esp + 0x74]
push eax
call fcn.0041c170
add esp, 0x20
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
jmp dword [0x4429f0]
push ebx
call fcn.00409240
add esp, 4
nop
nop
nop
nop
nop
jmp dword [0x442a04]
mov ebx, dword [esp + 0x1c]
inc ebx
jmp 0x411040
jmp dword [0x442ac8]
push esi
call fcn.00409240
add esp, 4
mov edi, dword [esp + 0x34]
jmp dword [0x442ac0]
mov esi, dword [esp + 0x18]
mov edi, esi
sub edi, ebx
sar edi, 1
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x411390
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ecx, esi
mov dword [esp + 0x1c], eax
mov esi, eax
cmp ecx, ebx
mov ebx, dword [esp + 0x14]
je 0x411472
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
lea ecx, [edi - 1]
mov edx, edi
and edx, 3
je 0x411532
mov dword [esp + 0xc4], edi
mov dword [esp + 0x24], ecx
xor ebx, ebx
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
mov edi, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, edi
mov word [esi], cx
add esi, 2
inc ebx
cmp edi, ebx
jne 0x4113e0
mov edi, dword [esp + 0xc4]
sub edi, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
cmp ecx, 3
jb 0x411472
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + 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 [esi + 6], dx
add esi, 8
add edi, 0xfffffffc
jne 0x411420
movzx eax, word [ebx]
test ax, ax
je 0x4114ac
lea ecx, [ebx + 2]
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411490
mov word [esi], 0
jmp dword [0x4429b8]
mov ebx, dword [esp + 0x1c]
mov word [esi], 0
jmp dword [0x4429b8]
jmp dword [0x4429c0]
push dword [esp + 0x14]
call fcn.00409240
add esp, 4
mov ecx, esi
not ecx
and ecx, ebx
mov eax, ebx
not eax
and eax, esi
sub eax, ecx
mov ecx, eax
sar ecx, 1
and eax, 2
xor ecx, 1
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
lea edi, [esp + 0x58]
jns 0x4114f7
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0xc4], eax
push eax
push ebx
call fcn.00435a40
add esp, 8
mov esi, dword [esp + 0x2c]
jmp dword [0x4429c8]
push ebx
call fcn.00409240
add esp, 4
mov eax, esi
jmp 0x412184
mov edx, esi
jmp 0x41217c
mov esi, dword [esp + 0x1c]
cmp ecx, 3
jae 0x411420
jmp 0x411472
lea ebx, [esp + 0x58]
mov word [edx], 0
mov ecx, dword [esp + 0x14]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x442b08]
mov dword [esp + 0x14], ecx
push ecx
push dword [esp + 0x2c]
call fcn.00402ee0
add esp, 8
mov esi, eax
mov word [esp + 0x58], 0xc7cd
mov byte [esp + 0x5a], 0xb4
lea eax, [esp + 0x5b]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4115fc
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 + 0x58]
lea edx, [eax + 0x19800439]
add eax, 0x39
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x71
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4115c0
push ebx
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0x7b65
mov byte [esp + 0x5a], 0xc2
mov dword [esp + 0x5f], 0
mov dword [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411683
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x60]
mov edi, ecx
not edi
or edi, edx
and edx, ecx
add edx, edi
neg edx
add eax, edx
add eax, 0x20be675f
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x60
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411640
push ebx
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x110d
mov byte [esp + 0x5a], 0xa4
lea eax, [esp + 0x5b]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411704
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 + 0x58]
add eax, 0x66121445
xor eax, ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x1d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4116d0
push ebx
push esi
call fcn.004026e0
add esp, 8
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x24]
mov dword [edx + ecx*4], 0
mov esi, dword [esp + 0x1c]
mov dword [edx + ecx*4 + 4], esi
lea esi, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov edi, 0xfffffffe
xor ebx, ebx
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x411740
test ebx, ebx
jns 0x411760
mov eax, 0xffffffff
jmp 0x411763
lea eax, [edi + 2]
push eax
call fcn.00409230
add esp, 4
mov edx, eax
mov dword [esi], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x411780
dec ebx
jmp 0x411799
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411790
mov dword [esp + 0x58], 0
add edi, edx
cmp edi, edx
jbe 0x411550
test ebx, ebx
jle 0x411550
mov esi, ecx
add esi, ebx
lea ebx, [esp + 0x58]
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411554
push ebx
push esi
push ecx
mov ebx, ecx
mov dword [esp + 0x24], edx
call fcn.0040f7d0
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411550
add ebx, eax
cmp ebx, esi
mov ecx, ebx
lea ebx, [esp + 0x58]
jb 0x4117c0
jmp 0x411554
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442968]
mov word [esp + 0x40], 0xf206
mov byte [esp + 0x42], 0x62
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xb
ja 0x41188c
nop
nop
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 + 0x40]
lea edx, [eax + 0x70]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x1b08970
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xf0
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xc
jb 0x411850
push 3
lea eax, [esp + 0x44]
push eax
push esi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442970]
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4118b8
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
jbe 0x411935
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x28], 0
jle 0x411935
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411935
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x24]
jae 0x411931
add edi, eax
cmp edi, esi
mov eax, dword [esp + 0x14]
jb 0x411900
jmp 0x411935
mov eax, dword [esp + 0x14]
mov word [ebx], 0
mov esi, 0xffffffff
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x411940
add dword [esp + 0x18], esi
xor edi, edi
mov dword [esp + 0x24], esi
test esi, esi
jle 0x41199b
cmp byte [eax], 0
je 0x41199b
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040f7d0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x41199b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411970
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4119a9
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x14]
jbe 0x411a0f
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x24], 0
jle 0x411a0f
mov edi, dword [esp + 0x28]
nop
nop
cmp byte [ebx], 0
je 0x411a0f
lea eax, [esp + 0x58]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x1c]
jae 0x411a0f
add ebx, eax
cmp ebx, esi
jb 0x4119e0
mov word [edi], 0
mov word [esp + 0x58], 0x2509
mov byte [esp + 0x5a], 0xa2
mov dword [esp + 0x5b], 0
mov byte [esp + 0x5f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411a80
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x12b23a]
add eax, 0xc6
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x96
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411a40
lea eax, [esp + 0x58]
push eax
push dword [ebp + 8]
call fcn.00402960
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
mov dword [esp + 0x14], 0
xor ebx, ebx
jmp dword [ecx*4 + 0x442a50]
push dword [esp + 0x24]
call fcn.00402ed0
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x411ad5
mov esi, eax
test dl, dl
jne 0x411adb
mov ecx, esi
push ecx
call fcn.00409230
add esp, 4
mov dword [eax], ebx
add eax, 4
mov dword [esp + 0x14], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 0x1c], ebx
jmp dword [eax*4 + 0x442a58]
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*4]
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 + 0x442a60]
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 + 0x442a60]
xor edi, edi
xor eax, eax
cmp edi, ebx
setb al
jmp dword [eax*4 + 0x442a68]
push edi
push dword [esp + 0x28]
call fcn.00402ee0
add esp, 8
mov ebx, eax
mov word [esp + 0x58], 0x272d
mov byte [esp + 0x5a], 0x94
mov dword [esp + 0x5f], 0
mov dword [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411bfe
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x2ed682c3]
and edx, ecx
add eax, ecx
add eax, 0xd1297d3d
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x55
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411bb0
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0xbb55
mov byte [esp + 0x5a], 0x32
lea eax, [esp + 0x5b]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x411ca0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
mov edx, eax
and edx, 0xeca8
xor eax, 0xeca8
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x68
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411c50
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
mov esi, eax
mov dword [esp + 0x58], 0xb310150c
lea eax, [esp + 0x5b]
mov byte [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x411d1c
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x6079ae18]
add eax, 0x18
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x58
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x411ce0
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.00402aa0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x1c]
push esi
call fcn.00416680
jmp dword [0x442a70]
inc edi
nop
nop
nop
inc edi
jmp dword [0x442a7c]
xor eax, eax
mov ebx, dword [esp + 0x1c]
cmp edi, ebx
setb al
jmp dword [eax*4 + 0x442a68]
mov dword [esp + 0x1c], ebx
lea ebx, [esp + 0x58]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
jmp dword [0x442a80]
lea ecx, [esp + 0xf0]
call fcn.004390a0
nop
nop
nop
nop
nop
mov eax, dword [case.0x411567.19]
mov edx, dword [esp + 0x150]
nop
nop
nop
nop
jmp eax
mov word [esp], 0x856a
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xe
ja 0x411ee2
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]
add eax, 0xaf6d4841
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
xor eax, esi
lea ecx, [esi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
add al, 0x39
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xf
jb 0x411ea0
push 3
lea eax, [esp + 4]
push eax
mov esi, ebx
push ebx
call fcn.00402db0
add esp, 0xc
jmp dword [0x442964]
mov dword [esp + 0x18], eax
mov ecx, eax
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x411f10
mov dword [esp + 0x14], ecx
mov eax, esi
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x28], eax
test eax, eax
jle 0x4118aa
cmp byte [edx], 0
je 0x4118aa
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040f7d0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4118aa
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411f40
jmp 0x4118aa
push dword [esp + 0x28]
call fcn.00402ed0
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x411f9d
mov esi, eax
test dl, dl
jne 0x411fa3
mov ecx, esi
push ecx
call fcn.00409230
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x24], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442af8]
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442b00]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442b00]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x442b08]
jmp dword [0x442b18]
mov edi, dword [esp + 0x1c]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x412063
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov esi, eax
mov dword [esp + 0x58], 0
lea eax, [eax + edi*2]
mov dword [esp + 0x18], eax
cmp eax, esi
jbe 0x4120bb
cmp dword [esp + 0x28], 0
jle 0x4120bb
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
cmp byte [ebx], 0
je 0x4120bb
lea eax, [esp + 0x58]
push eax
push edi
push ebx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4120bb
add ebx, eax
cmp ebx, edi
jb 0x412090
mov word [esi], 0
lea ecx, [esp + 0x58]
push 1
call fcn.00409bd0
jmp case.0x412f02.14
mov word [esi], 0
lea ecx, [esp + 0x58]
push 1
call fcn.00409bd0
mov edi, dword [esp + 0x34]
jmp dword [0x4429d8]
mov esi, dword [esp + 0x1c]
mov eax, esi
inc eax
jns 0x412100
mov eax, 0xffffffff
jmp 0x412106
lea eax, [esi + esi]
add eax, 2
push eax
call fcn.00409230
add esp, 4
mov dword [esp], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x24]
jbe 0x4120d0
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x28], 0
jle 0x4120d0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
nop
nop
cmp byte [edi], 0
je 0x4120d0
mov eax, esp
push eax
push ebx
push edi
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4120d0
add edi, eax
cmp edi, ebx
jb 0x412140
jmp 0x4120d0
xor ebx, ebx
mov esi, dword [esp + 0x54]
jmp 0x411040
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x412188
mov edx, eax
jmp 0x41217c
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x24], edx
jle 0x4121ea
cmp byte [esi], 0
je 0x4121ea
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
push edi
push edx
push esi
call fcn.0040f7d0
mov edx, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esi + eax]
inc dword [esp + 0x1c]
cmp ecx, edx
jae 0x4121ea
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4121c0
jmp dword [0x4429d0]
jmp dword [0x442ac0]
push dword [esp + 0x28]
call fcn.00409240
add esp, 4
jmp dword [0x442ac8]
push dword [esp + 0x2c]
call fcn.00409240
add esp, 4
jmp case.0x412f02.77
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a48]
mov eax, dword [esp + 0xe0]
mov edi, dword [eax + 4]
mov esi, dword [esp + 0x18]
sub esi, edi
sar esi, 1
mov eax, dword [esp + 0x28]
lea ecx, [eax + esi]
lea eax, [ecx + ecx]
test ecx, ecx
mov ebx, dword [esp + 0x14]
jns 0x412250
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
cmp dword [esp + 0x18], edi
je 0x412306
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x4122ab
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ecx
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
mov esi, edx
xor edx, edx
test cx, cx
setne dl
lea edi, [edi + edx*2]
mov edx, esi
mov word [eax], cx
add eax, 2
inc ebx
cmp esi, ebx
jne 0x412280
mov esi, dword [esp + 0x24]
sub esi, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
cmp ecx, 3
jb 0x412306
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
mov word [eax], cx
lea ecx, [edi + edx*2]
movzx edx, word [edi + edx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [eax + 2], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [eax + 4], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [eax + 6], dx
add eax, 8
add esi, 0xfffffffc
jne 0x4122b0
mov ebx, dword [esp + 0x14]
movzx ecx, word [ebx]
test cx, cx
je 0x412333
lea edx, [ebx + 2]
mov esi, dword [esp + 0x18]
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 0x412320
jmp 0x412337
mov esi, dword [esp + 0x18]
mov word [eax], 0
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + 4]
jmp 0x411377
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
jmp dword [0x442adc]
mov word [esp + 0x58], 0x1586
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4123de
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xad]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x64b8f0ad
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 9
jb 0x412390
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x1598
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x412350
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x58]
lea esi, [eax + 0xecad]
lea ecx, [eax + edx]
add ecx, 0xecad
add eax, 0xad
or eax, esi
and esi, edx
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412430
jmp 0x412350
mov esi, eax
xor eax, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442ae0]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442ae8]
mov eax, ecx
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x4124c0
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x41251a
cmp byte [ecx], 0
je 0x41251a
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x18]
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push ebx
push edi
call fcn.0040f7d0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esp + 0x14]
cmp ecx, ebx
jae 0x41251a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4124f0
mov edi, dword [esp + 0x14]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41252c
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ecx, edi
and ecx, 1
xor edi, 1
lea ecx, [edi + ecx*2]
mov dword [esp + 0x58], 0
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov edx, eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov edi, dword [esp + 0x18]
jbe 0x4125b3
mov edx, dword [esp + 0xdc]
cmp dword [esp + 0x1c], 0
jle 0x4125b3
mov edx, dword [esp + 0xdc]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4125b3
lea eax, [esp + 0x58]
push eax
push ebx
push edi
mov dword [esp + 0x24], edx
call fcn.0040f7d0
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x14]
jae 0x4125b3
add edi, eax
cmp edi, ebx
jb 0x412580
mov word [edx], 0
mov edi, 0xfffffffe
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [esi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4125d0
mov eax, edi
and eax, 2
mov ecx, ebx
xor ecx, 1
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4125f5
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x54], eax
test esi, esi
jne 0x412619
mov ebx, esi
not ebx
xor eax, eax
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412610
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x54]
add edi, eax
mov ecx, eax
cmp edi, eax
jbe 0x412679
mov ecx, dword [esp + 0x54]
test ebx, ebx
jle 0x412679
mov edx, esi
add edx, ebx
mov ecx, dword [esp + 0x54]
nop
nop
nop
cmp byte [esi], 0
je 0x412679
lea eax, [esp + 0x58]
push eax
push edx
push esi
mov dword [esp + 0x24], ecx
mov ebx, edx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov edx, dword [esp + 0x18]
mov word [edx], cx
mov ecx, dword [esp + 0x18]
add ecx, 2
cmp ecx, edi
jae 0x412679
add esi, eax
cmp esi, ebx
mov edx, ebx
jb 0x412640
mov word [ecx], 0
mov word [esp + 0x58], 0xe9e1
mov byte [esp + 0x5a], 0x50
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov byte [esp + 0x63], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4126ee
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x73421f0d]
add eax, 0xf3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x5b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4126b0
lea ebx, [esp + 0x58]
push ebx
push dword [ebp + 8]
call fcn.00402960
add esp, 8
xor ecx, ecx
mov dword [esp + 0x28], eax
test eax, eax
setne cl
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
jmp dword [ecx*4 + 0x442af0]
mov ecx, ebx
push 3
call fcn.00409bd0
push dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
push esi
push dword [esp + 0x5c]
push dword [esp + 0xe8]
push ebx
call fcn.00419a70
add esp, 0x14
mov ecx, ebx
call fcn.0040a650
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442b20]
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 + 0x442b28]
push esi
call fcn.00409240
add esp, 4
mov edi, dword [esp + 0x34]
jmp dword [0x442b38]
jmp dword [0x442b40]
push dword [esp + 0x54]
jmp 0x41220c
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x442b30]
mov eax, dword [edi - 0xc]
add edi, 0xfffffff4
test eax, eax
je 0x4127a0
push eax
call fcn.00409240
mov edx, dword [esp + 0x28]
add esp, 4
jmp 0x4127a0
mov edi, dword [esp + 0x34]
jmp dword [0x442b38]
push dword [esp + 0xdc]
call fcn.00409240
add esp, 4
jmp dword [0x442b40]
mov ecx, ebx
call fcn.00409c10
jmp case.0x413186.4
mov word [esp + 0xc8], 0x19ed
mov dword [esp + 0xca], 0
mov word [esp + 0xce], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x412889
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx esi, byte [esp + eax + 0xc8]
lea eax, [edx - 0x460e9d2c]
lea ecx, [edx + esi]
add ecx, 0xb9f162d4
add edx, 0xd4
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x34
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x412830
push 5
lea eax, [esp + 0xcc]
push eax
mov esi, ebx
push ebx
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442948]
mov word [esp + 0x38], 0xa12c
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x412922
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx edx, byte [esp + ecx + 0x38]
mov ecx, 0x9fbdbf64
sub ecx, eax
add eax, 0x9b
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
add al, 0xc3
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x4128e0
push 2
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442950]
jmp dword [0x44295c]
mov word [esp], 0x856a
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xe
ja 0x4129c2
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx]
add eax, 0xaf6d4841
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
xor eax, esi
lea ecx, [esi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
add al, 0x39
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xf
jb 0x412980
push 3
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402db0
add esp, 0xc
jmp case.0x41293b.3
movzx eax, al
mov edi, dword [esp + 0x34]
jmp dword [eax*4 + 0x442a90]
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x4a], 0
cmp eax, 0x3ff
ja 0x412a00
mov byte [esp + 0x49], 0x30
lea esi, [esp + 0x49]
jmp 0x412a7e
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x4a]
cmp eax, 0x19000
jb 0x412a4e
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x412a10
cmp edx, 9
ja 0x412a55
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x412a7a
mov edx, ecx
cmp edx, 9
jbe 0x412a41
mov eax, edx
and eax, 0xfffffffd
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov edi, dword [esp + 0x34]
mov dword [esp], 0x6352ab93
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 8
ja 0x412b02
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x7038b331]
and edx, ecx
add eax, ecx
add eax, 0x7038b331
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xa9
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 9
jb 0x412ab0
mov dword [esp + 0xf0], 0xa1a0545b
mov dword [esp + 0xf4], 0x175ba7ab
mov dword [esp + 0xf8], 0xb7b3484e
mov dword [esp + 0xfc], 0xbb0e4949
mov dword [esp + 0x100], 0x46b101bf
mov dword [esp + 0x104], 0x440641ba
mov dword [esp + 0x108], 0xc6c5cbc0
mov dword [esp + 0x10c], 0x7fc3c8c5
mov dword [esp + 0x110], 0xc83130c0
mov dword [esp + 0x114], 0xc376c131
mov dword [esp + 0x118], 0xd3de69d7
mov dword [esp + 0x11c], 0x2add6d29
mov dword [esp + 0x120], 0xd127d7d2
mov dword [esp + 0x124], 0xd8d26518
mov dword [esp + 0x128], 0x5be618ec
mov dword [esp + 0x12c], 0xe41d1cec
mov dword [esp + 0x130], 0xe052e515
mov dword [esp + 0x134], 0x3d13ffed
mov word [esp + 0x138], 0x6948
mov dword [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x51
ja 0x412c48
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0x28]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc26bef28
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xe8
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x52
jb 0x412c00
lea eax, [0x447623]
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412c50
movzx ecx, byte [esp + 0xf0]
test cl, cl
je 0x412c82
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xf1]
inc edx
test cl, cl
jne 0x412c70
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x412c9b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x412c90
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x412cbb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412cb0
mov byte [eax], 0
mov eax, dword [case.0x412f02.67]
mov ecx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442aa8]
lea esi, [ecx - 4]
mov eax, dword [ecx - 4]
mov edx, ecx
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442ab0]
xor eax, eax
cmp edi, dword [esp + 0x14]
sete al
jmp dword [eax*4 + 0x442ab8]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x412d20
push eax
call fcn.00409240
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x412d00
push eax
call fcn.00409240
add esp, 4
jmp 0x412d00
mov eax, dword [esp + 0xc8]
add eax, 2
push eax
call fcn.00438b80
add esp, 4
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xc8]
add ecx, 2
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x58], 0x5c5d5e5f
mov dword [esp + 0x5c], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x40]
cmp eax, 0xa
ja 0x412dde
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x40]
movzx esi, byte [esp + esi + 0x58]
mov edi, eax
and edi, 0x385652f4
xor eax, 0xb85652f4
lea edi, [eax + edi*2]
mov eax, edi
and eax, esi
add edi, esi
add eax, eax
mov esi, eax
xor esi, edi
not eax
and eax, edi
add eax, eax
sub eax, esi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x54
mov esi, dword [esp + 0x40]
mov byte [esp + esi + 0x58], al
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp eax, 0xb
jb 0x412d90
mov eax, dword [esp + 0x58]
mov esi, dword [0x448630]
test esi, esi
je 0x412e12
xor edi, edi
mov ebx, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x412f1b
inc edi
cmp esi, edi
jne 0x412e00
mov edi, dword [esp + 0x34]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442990]
mov ecx, dword [esp + 0x24]
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x412e30
sub esi, ecx
mov eax, esi
inc eax
mov dword [esp + 0x28], eax
lea eax, [esi + esi + 2]
jns 0x412e4c
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, esi
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x412e79
mov edi, edx
not edi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412e70
mov dword [esp + 0x58], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x412edf
mov esi, dword [esp + 0x14]
test edi, edi
jle 0x412edf
mov ebx, edx
add ebx, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x412edf
lea eax, [esp + 0x58]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x412edf
add edi, eax
cmp edi, ebx
mov edx, edi
jb 0x412eb0
mov word [esi], 0
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ebx
add eax, 0xfffffffe
xor edx, edx
cmp eax, ebx
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x442998]
xor edx, edx
cmp word [ecx], 0
setne dl
mov esi, eax
jmp dword [edx*4 + 0x4429a0]
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
mov edi, dword [esp + 0x34]
je 0x412e16
push 0
push ecx
push dword [esp + 0xe8]
push 0x2b
push edx
push 5
push dword [0x448638]
push esi
call fcn.0043a550
add esp, 0x20
jmp 0x412e16
mov word [esp + 0x58], 0x1984
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x413138
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x6dc46cac]
add eax, 0xac
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
or ecx, 0x4b
and eax, 0x4b
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x4130f0
lea eax, [esp + 0x58]
push eax
push esi
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xee]
movzx eax, word [esp + 0xee]
or eax, 0xc00
mov word [esp + 0x15e], ax
fldcw word [esp + 0x15e]
fistp dword [esp + 0x170]
fldcw word [esp + 0xee]
mov eax, dword [esp + 0x170]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x442860]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x442868]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442870]
mov word [esp + 0x58], 0x6df7
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x41321d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x12]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6de812
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x82
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4131e0
push 2
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442938]
mov word [esp + 0xf0], 0x576
mov dword [esp + 0xf6], 0
mov dword [esp + 0xf2], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 9
ja 0x4132bb
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0x51757801]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x51757800
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xf9
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xa
jb 0x413270
push 2
lea eax, [esp + 0xf4]
push eax
mov esi, ebx
push ebx
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442940]
movzx eax, al
jmp dword [eax*4 + 0x442970]
mov word [esp + 0x58], 0x8d27
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41337c
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xecbe]
add eax, 0xbe
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0xcd
and eax, 0x4d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413320
lea eax, [esp + 0x58]
push eax
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0xf916
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41341c
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 + 0x58]
lea edx, [eax + 0xecbf]
add eax, 0xbf
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xc7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4133d0
lea eax, [esp + 0x58]
push eax
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x58], 0xc16d
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4134b6
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 + 0x58]
lea edx, [eax + 0xa0]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xec9f
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xa0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413470
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.00402960
add esp, 8
mov esi, eax
mov word [esp + 0x58], 0xcd52
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x413531
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x383e5f1e
add eax, 0x383e5f1e
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x2e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x4134f0
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x58], 0xb114
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x4135b1
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x310360c8
add eax, 0x310360c8
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x88
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x413570
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xec]
movzx eax, word [esp + 0xec]
or eax, 0xc00
mov word [esp + 0x15c], ax
fldcw word [esp + 0x15c]
fistp dword [esp + 0x164]
fldcw word [esp + 0xec]
mov eax, dword [esp + 0x164]
mov dword [esp + 0xdc], eax
mov word [esp + 0x58], 0x4c78
mov byte [esp + 0x5a], 0xd0
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x63], 0
mov byte [esp + 0x67], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41368b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x58]
lea eax, [ecx + 0xeca3]
and eax, edx
add ecx, edx
add ecx, 0xeca3
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x8b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413640
mov dword [esp + 0x54], esi
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.00402820
add esp, 8
mov edi, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4136b0
fnstcw word [esp + 0xea]
movzx ecx, word [esp + 0xea]
or ecx, 0xc00
mov word [esp + 0x15a], cx
fldcw word [esp + 0x15a]
fistp dword [esp + 0x160]
fldcw word [esp + 0xea]
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x14c], ecx
lea esi, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41370b
mov ecx, 0xffffffff
push ecx
call fcn.00409230
add esp, 4
mov edx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x413739
mov esi, ecx
not esi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x413730
mov dword [esp + 0x58], 0
add edi, edx
mov ebx, edx
mov dword [esp + 0x14], edx
cmp edi, edx
jbe 0x4137a1
mov ebx, dword [esp + 0x14]
test esi, esi
jle 0x4137a1
mov edx, ecx
add edx, esi
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4137a1
lea eax, [esp + 0x58]
push eax
push edx
push ecx
mov esi, ecx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, edi
jae 0x4137a1
add esi, eax
mov edx, dword [esp + 0x18]
cmp esi, edx
mov ecx, esi
jb 0x413770
mov word [ebx], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0xf0]
mov esi, dword [esp + 0x14]
push esi
call fcn.00438d10
jmp dword [0x442978]
push esi
call fcn.00409240
add esp, 4
lea ecx, [esp + 0xf0]
push 0x400
call fcn.00438f70
not eax
shr eax, 0x1f
mov edi, dword [esp + 0x34]
jmp dword [eax*4 + 0x442980]
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x58], 0x5c5d5e5f
mov dword [esp + 0x5c], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x40]
cmp ecx, 0xa
ja 0x4138a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x40]
movzx edx, byte [esp + edx + 0x58]
mov esi, ecx
and esi, 0x385652f4
xor ecx, 0xb85652f4
lea esi, [ecx + esi*2]
mov ecx, esi
and ecx, edx
add esi, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x54
mov edx, dword [esp + 0x40]
mov byte [esp + edx + 0x58], cl
inc dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
cmp ecx, 0xb
jb 0x413850
mov ecx, dword [esp + 0x58]
mov edx, dword [0x448630]
test edx, edx
je case.default.0x4143c2
xor esi, esi
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x68655b54
je 0x4142f9
inc esi
cmp edx, esi
jne 0x4138c0
jmp case.default.0x4143c2
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x442878]
mov word [esp + 0x58], 0x6ddc
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41396b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x58]
lea eax, [ecx - 0x7f0ae172]
and eax, edx
add ecx, edx
add ecx, 0x80f51e8e
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x1e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413920
lea ebx, [esp + 0x58]
push ebx
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0xd922
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov byte [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4139ee
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x519dac9c]
add eax, 0x9c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xbc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb case.default.0x413a03
push ebx
push esi
call fcn.004026e0
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x1c]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442a40]
jmp dword [0x442ad4]
mov word [esp + 0x58], 0x1586
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x413a8e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xad]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x64b8f0ad
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 9
jb 0x413a40
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
mov word [esp + 0x58], 0x1598
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x413b43
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x58]
lea esi, [eax + 0xecad]
lea ecx, [eax + edx]
add ecx, 0xecad
add eax, 0xad
or eax, esi
and esi, edx
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413ae0
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.004026e0
add esp, 8
jmp case.0x412f02.79
sete al
movzx eax, al
jmp dword [eax*4 + 0x442880]
mov edx, dword [edi + esi*8 + 4]
cmp edx, ecx
jne 0x414394
xor eax, eax
cmp ecx, 0xc0000004
sete al
mov edi, dword [esp + 0x34]
jmp dword [eax*4 + 0x442988]
lea ecx, [esp + 0xc8]
push ecx
push 0
push 0
push 0x2b
push eax
push 5
push dword [0x448638]
push edx
call fcn.0043a550
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
mov edi, dword [esp + 0x34]
jmp dword [ecx*4 + 0x442988]
mov ecx, ebx
call fcn.0040a650
mov ecx, ebx
call fcn.00409c10
push dword [esp + 0xe0]
call fcn.00438c40
add esp, 4
mov eax, dword [case.0x4118a3.4]
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x18], esi
jmp dword [0x4429b4]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, ebx
setae dl
jmp dword [edx*4 + 0x442998]
xor edx, edx
movzx edx, dl
mov esi, eax
jmp dword [edx*4 + 0x4429a0]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov esi, ecx
jmp dword [edx*4 + 0x4429a8]
mov ecx, ebx
push 2
call fcn.00409bd0
push dword [esp + 0x1c]
push esi
push edi
push dword [esp + 0x38]
push ebx
call fcn.00416ce0
add esp, 0x14
mov ecx, ebx
call fcn.0040a650
mov ecx, ebx
push 2
call fcn.00409bd0
push dword [esp + 0x1c]
push esi
push edi
push dword [esp + 0x38]
push ebx
call fcn.00416ce0
add esp, 0x14
mov ecx, ebx
call fcn.0040a650
jmp dword [0x442a88]
push dword [esp + 0xc4]
call fcn.00409240
add esp, 4
push dword [esp + 0xc4]
call fcn.00409240
add esp, 4
jmp dword [0x442a2c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edi, [esp + 0x110]
mov dword [esp + 0x44], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00402ed0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x442b88]
mov dword [esp + 0x2c], ebx
push ebx
push esi
call fcn.00402ee0
add esp, 8
mov word [esp + 0x110], 0x39a1
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x119], 0
mov dword [esp + 0xb0], 0
mov ecx, dword [esp + 0xb0]
cmp ecx, 0xc
ja 0x4147d6
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x110]
mov edx, ebx
and edx, 0x15ce9227
xor ebx, 0x15ce9227
lea ebx, [ebx + edx*2]
lea edx, [ebx + ecx]
and ebx, ecx
add ebx, ebx
mov ecx, ebx
xor ecx, edx
not ebx
and ebx, edx
add ebx, ebx
sub ebx, ecx
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x48]
add dl, 0xef
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x110], dl
inc dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
cmp ecx, 0xd
jb 0x414770
push 2
push edi
mov dword [esp + 0x38], eax
push eax
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x442bb0]
mov word [esp + 0x48], 0xa5b6
mov byte [esp + 0x4a], 0x1a
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4f], 0
mov word [esp + 0x53], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xc
ja 0x414876
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x289e1afc
add eax, 0x289e1afc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0x1c
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xd
jb 0x414830
push 3
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x38]
call fcn.00402db0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442bb8]
mov word [esp + 0xb0], 0xd52d
mov dword [esp + 0xb2], 0
mov word [esp + 0xb6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x41491b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb0]
mov edx, eax
and edx, 0xf316c29d
xor eax, 0xf316c29d
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0xb5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x4148d0
push 3
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x38]
call fcn.00402db0
add esp, 0xc
test eax, eax
sete bl
mov eax, dword [case.0x414890.5]
nop
nop
nop
nop
nop
jmp eax
movzx eax, bl
mov ebx, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442bd0]
mov byte [esp + 0x110], 0x19
mov eax, dword [case.0x411567.59]
nop
nop
nop
jmp eax
mov byte [esp + 0x111], 0x6d
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 9
mov ebx, dword [esp + 0x30]
ja 0x414a07
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx edx, byte [esp + ecx + 0x110]
lea esi, [eax + 0x52e156ee]
and esi, edx
lea ecx, [eax + edx]
add ecx, 0x52e156ee
add eax, 0xee
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x7e
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xa
jb 0x4149a0
push edi
push ebx
call fcn.004026e0
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0x5546
mov byte [esp + 0x112], 0xda
mov dword [esp + 0x113], 0
mov dword [esp + 0x117], 0
mov dword [esp + 0x11a], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xd
ja 0x414ab5
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + ecx]
add eax, 0xe4
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x182e16e4
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0xc4
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xe
jb 0x414a60
push edi
push ebx
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xaa]
movzx eax, word [esp + 0xaa]
or eax, 0xc00
mov word [esp + 0xfa], ax
fldcw word [esp + 0xfa]
fistp dword [esp + 0x108]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x3c], eax
mov word [esp + 0x110], 0x59e5
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov byte [esp + 0x11a], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xa
ja 0x414b92
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x784a32f4]
add eax, 0xf4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x54
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xb
jb 0x414b40
push edi
push ebx
call fcn.00402820
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x414bb0
fnstcw word [esp + 0xa8]
movzx ecx, word [esp + 0xa8]
or ecx, 0xc00
mov word [esp + 0xf8], cx
fldcw word [esp + 0xf8]
fistp dword [esp + 0x104]
fldcw word [esp + 0xa8]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], 0
mov ecx, edi
test eax, eax
jle 0x414c60
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x414c60
lea eax, [esp + 0x48]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x18], ecx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0xc]
mov word [edx], cx
mov ecx, dword [esp + 0xc]
add ecx, 2
cmp edi, 0x3fd
ja 0x414c60
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x414c8d
nop
nop
mov word [ecx], 0
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x38]
push eax
lea edi, [esp + 0x118]
push edi
call fcn.0040c380
add esp, 0xc
movzx eax, al
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442bf8]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
xor ecx, ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x442c00]
mov word [esp + 0x48], 0x2dbc
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x51], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xc
ja 0x414d3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x76772cfa]
add eax, 0xfa
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
mov ecx, eax
xor ecx, 0x29
and eax, 0x29
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xd
jb 0x414cf0
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x34]
call fcn.004026e0
add esp, 8
mov edx, eax
xor eax, eax
test edx, edx
setne al
mov dword [esp + 0xc], edx
jmp dword [eax*4 + 0x442c08]
mov dword [esp + 0x48], 0xd2565156
mov dword [esp + 0x4c], 0
mov word [esp + 0x50], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x414de0
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x606f38f3
add eax, 0x606f38f3
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
mov ecx, eax
or ecx, 0x5a
and eax, 0x5a
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x414d90
mov eax, dword [esp + 0x48]
push dword [eax + 0x14]
call fcn.00409a30
add esp, 4
call fcn.00409a50
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
lea ebx, [esp + 0xb0]
jmp dword [eax*4 + 0x442c28]
call fcn.00409a50
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, dword [case.0x414e0c.5]
nop
nop
jmp ecx
mov word [ebx], ax
add ebx, 2
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x442c28]
mov word [ebx], 0
mov dword [esp + 0x10], 0xb560d61
mov dword [esp + 0x14], 0x17430945
mov dword [esp + 0x18], 0x137f1544
mov dword [esp + 0x1c], 0x1f1e11b4
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x13
ja 0x414f00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx esi, byte [esp + eax + 0x10]
lea eax, [edx + 0x1f5c5c2a]
lea ecx, [edx + esi]
add ecx, 0x1f5c5c2a
add edx, 0x2a
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xda
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x14
jb 0x414eb0
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x48]
test ax, ax
mov ebx, dword [esp + 0x2c]
je 0x414f31
lea ecx, [esp + 0x12]
lea esi, [esp + 0x48]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414f20
mov word [esi], 0
movzx eax, word [esp + 0xb0]
test ax, ax
je 0x414f61
lea ecx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414f50
mov word [esi], 0
lea eax, [esp + 0x48]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xfc]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x44862c]
mov edi, dword [esp + 0xfc]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x414f9b
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ecx, eax
lea eax, [esp + 0xfc]
push eax
push edi
mov dword [esp + 0x14], ecx
push ecx
push esi
lea eax, [esp + 0x58]
push eax
push 0
call dword [0x44862c]
xor eax, eax
mov ecx, dword [esp + 0x3c]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442c40]
mov eax, dword [case.0x414c8d.23]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x442c58]
xor eax, eax
cmp ecx, 2
sete al
lea edi, [esp + 0x110]
mov edx, dword [esp + 0xc]
jmp dword [eax*4 + 0x442c60]
jmp 0x41547c
jmp dword [0x442be4]
mov eax, edx
jmp dword [0x442c14]
mov eax, edx
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x415020
mov ecx, esi
sub ecx, edx
mov eax, edx
test ecx, ecx
jle case.0x414d5c.3
cmp byte [edx], 0
mov eax, edx
je case.0x414d5c.3
mov ebx, edx
mov edi, edx
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040f7d0
add esp, 0xc
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x415066
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x415040
mov edx, ebx
mov eax, ebx
jmp case.0x414d5c.3
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ecx, eax
mov edx, dword [esp + 0xc]
mov eax, edx
jmp dword [0x442c18]
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x414d5c.3
mov eax, ebx
sub eax, edx
xor edi, edi
mov dword [esp + 0x28], eax
test eax, eax
jle 0x4150d7
cmp byte [edx], 0
je 0x4150d7
xor edi, edi
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040f7d0
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x4150d7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4150b0
mov eax, edi
inc eax
js 0x41506c
lea eax, [edi + edi]
add eax, 2
jmp 0x415071
mov dword [esp + 0x48], 0
lea eax, [ecx + edi*2]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xac], eax
cmp eax, ecx
mov dword [esp + 0x38], ecx
jbe 0x415412
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x28], 0
jle 0x415412
mov dword [esp + 0x40], ecx
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x415412
lea eax, [esp + 0x48]
push eax
push ebx
push edx
mov esi, edx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x40]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0xac]
jae 0x41540e
add esi, eax
cmp esi, ebx
mov edx, esi
mov ecx, dword [esp + 0x38]
jb 0x415120
jmp 0x415412
mov dword [esp + 0x10], 0x3b5f3918
mov dword [esp + 0x14], 0x3f5b3da2
mov word [esp + 0x18], 0x213e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x15
ja 0x415204
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0xd42029a7
add eax, 0xd42029a7
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
or ecx, 0x6e
and eax, 0x6e
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x16
jb 0x4151b0
mov edx, dword [esp + 0xc]
mov eax, edx
add eax, 0xfffffffe
lea edi, [esp + 0x110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415220
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x415407
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x415240
jmp 0x415401
mov dword [esp + 0x10], 0xdbb6d9ee
mov dword [esp + 0x14], 0xe792e590
mov word [esp + 0x18], 0xe1e0
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xf
ja 0x4152df
nop
nop
nop
mov edx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx esi, byte [esp + eax + 0x10]
lea eax, [edx + 0xdc]
mov ecx, 0x123
sub ecx, edx
sub ecx, esi
add edx, esi
add edx, 0xecdc
and eax, esi
add eax, eax
and ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xfc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x10
jb 0x415290
mov edx, dword [esp + 0xc]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4152f0
movzx ecx, word [esp + 0x10]
test cx, cx
lea edi, [esp + 0x110]
je 0x415407
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x415320
jmp 0x415401
mov dword [esp + 0x10], 0xb841544
mov dword [esp + 0x14], 0xf5f099f
mov word [esp + 0x18], 0xd0e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x16
ja 0x4153be
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add eax, 0x2d
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xd95fac2d
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xc5
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x17
jb 0x415380
mov edx, dword [esp + 0xc]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4153d0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x415407
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4153f0
add eax, edx
mov edx, dword [esp + 0xc]
mov word [eax], 0
jmp 0x41547c
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov word [eax], 0
lea eax, [esp + 0x48]
push eax
push 0
push 0
push edi
push ecx
push 0
call dword [0x44862c]
mov esi, dword [esp + 0x48]
lea eax, [esi + esi]
test esi, esi
mov ebx, dword [esp + 0x2c]
jns 0x415442
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ecx, eax
lea eax, [esp + 0x48]
push eax
push esi
mov esi, ecx
push ecx
push edi
mov edi, dword [esp + 0x48]
push edi
push 0
call dword [0x44862c]
jmp dword [0x442c20]
push edi
call fcn.00409240
add esp, 4
lea edi, [esp + 0x110]
mov edx, esi
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x24], edx
push edx
call fcn.0043c680
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442c68]
jmp 0x4155a5
push 0
push dword [esp + 0x110]
push dword [esp + 0x3c]
push dword [esp + 0x14]
call fcn.0043ce70
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x48], 0x5c5d5e5f
mov dword [esp + 0x4c], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xa
ja 0x415558
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x48]
mov edi, ecx
and edi, 0x385652f4
xor ecx, 0xb85652f4
lea edi, [ecx + edi*2]
mov ecx, edi
and ecx, edx
add edi, edx
add ecx, ecx
mov edx, ecx
xor edx, edi
not ecx
and ecx, edi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x54
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xb
jb 0x415500
mov ecx, dword [0x448630]
test ecx, ecx
je 0x41559e
mov edx, dword [esp + 0x48]
xor edi, edi
mov ebx, dword [0x448634]
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x415580
inc edi
cmp ecx, edi
jne 0x415570
jmp case.default.0x4155ce
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x4155ce
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
mov ebx, dword [esp + 0x2c]
lea edi, [esp + 0x110]
push dword [esp + 0x34]
call fcn.00438c40
add esp, 4
mov dword [esp + 0x34], 0
not esi
shr esi, 0x1f
mov dword [esp + 0x28], 0
mov dword [esp + 0x40], 0
jmp dword [esi*4 + 0x442c70]
xor eax, eax
cmp dword [esp + 0x3c], 1
sete al
mov dword [esp + 0x40], 1
mov dword [esp + 0x28], 0
jmp dword [eax*4 + 0x442c78]
mov word [esp + 0x48], 0x6720
mov byte [esp + 0x4a], 0xf8
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x415684
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0xbf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x31a627bf
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
mov ecx, eax
or ecx, 0xc6
and eax, 0xc6
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x415630
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x48]
push eax
push esi
call fcn.004026e0
add esp, 8
mov dword [esp + 0x3c], eax
mov word [esp + 0x48], 0x6b25
mov byte [esp + 0x4a], 0xf8
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x41572a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, eax
and edx, 0x3ff9739f
xor eax, 0xbff9739f
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
mov ecx, eax
or ecx, 0xa6
and eax, 0xa6
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x4156d0
lea eax, [esp + 0x48]
push eax
push esi
call fcn.004026e0
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xac], edx
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x415750
sar eax, 1
mov ecx, dword [case.0x4155ce.7]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
setne bl
mov dword [esp + 0x30], ebx
jmp dword [ebx*4 + 0x442c90]
xor ebx, ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xf4], ecx
jmp dword [ecx*4 + 0x442c98]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x4157b0
sub esi, edx
inc esi
mov dword [esp + 0x38], esi
jmp 0x4157fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.default.0x4157eb
sub ebx, dword [esp + 0x3c]
inc ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xf4], ecx
jmp dword [ecx*4 + 0x442c98]
mov dword [esp + 0x38], 0
mov dword [esp + 0x48], 0xb33fb538
mov dword [esp + 0x4c], 0xcfccb1c0
mov dword [esp + 0x50], 0xcbb8cdba
mov dword [esp + 0x54], 0xc786c987
mov word [esp + 0x58], 0xc5c6
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1c
ja 0x41589d
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x48]
lea esi, [ecx + 0x39]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x80347839
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x71
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x48], cl
mov ecx, dword [esp + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0x1d
jb 0x415850
lea edx, [esp + 0x48]
mov ecx, 4
lea edi, [esp + 0xb0]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x58]
mov ecx, 1
lea edi, [esp + 0xc0]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, 0xfffffffe
nop
cmp word [esp + ecx + 0xb2], 0
lea ecx, [ecx + 2]
jne 0x4158d0
sar ecx, 1
add eax, ebx
add eax, dword [esp + 0x38]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
jns 0x4158fd
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov esi, eax
movzx eax, word [esp + 0xb0]
mov dword [esp + 0x28], esi
test ax, ax
je 0x415941
lea ecx, [esp + 0xb2]
mov esi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415930
mov dword [esi], 0x220020
add esi, 4
mov edx, dword [esp + 0xc]
movzx eax, word [edx]
test ax, ax
je 0x415971
lea ecx, [edx + 2]
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 0x415960
lea edi, [esi + 2]
mov word [esi], 0x22
jmp dword [0x442ca0]
push edx
call fcn.00409240
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x442cb4]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x442cb8]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xf4]
jmp dword [eax*4 + 0x442cc0]
mov word [edi], 0x2c
mov eax, 0xffffffff
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x3c]
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4159d0
lea edi, [esi + 4]
mov dword [esp + 0x48], 0
cmp ebx, 2
mov dword [esp + 0xc], edi
jl 0x415a53
test eax, eax
jle 0x415a53
mov edi, edx
add edi, eax
lea eax, [esi + ebx*2]
add eax, 2
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x415a57
mov esi, ecx
lea eax, [esp + 0x48]
push eax
push edi
push edx
mov ebx, edx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0xc]
mov word [edx], cx
add edx, 2
mov dword [esp + 0xc], edx
cmp edx, dword [esp + 0x30]
jae 0x415a51
add ebx, eax
cmp ebx, edi
mov ecx, esi
mov edx, ebx
mov ebx, dword [esp + 0x2c]
jb 0x415a10
jmp 0x415a57
mov ecx, esi
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
mov word [edi], 0
mov eax, dword [esp + 0xf4]
jmp dword [eax*4 + 0x442cc0]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415a80
lea esi, [edi + 2]
mov dword [esp + 0x48], 0
cmp dword [esp + 0x38], 2
jl 0x415adf
test eax, eax
jle 0x415adf
mov ebx, ecx
add ebx, eax
mov eax, dword [esp + 0x38]
lea eax, [edi + eax*2]
mov dword [esp + 0xc], eax
nop
cmp byte [ecx], 0
je 0x415adf
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040f7d0
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0xc]
jae 0x415adf
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x415ab0
mov word [esi], 0
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x3c], 0
lea edi, [esp + 0x110]
mov eax, dword [case.0x4155ce.25]
mov ecx, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442ce0]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
jmp dword [eax*4 + 0x442ce8]
mov eax, dword [case.0x4155ce.35]
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0xc], ecx
xor eax, eax
mov ecx, dword [esp + 0x3c]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x442d00]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x442d08]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442d10]
mov edx, dword [esp + 0xc]
mov ecx, edx
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x415b80
sub eax, edx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x415b9a
mov ecx, 0xffffffff
push ecx
call fcn.00409230
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0xb0], 0x4b4445a0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x415c1c
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax - 0x605532cb]
lea esi, [eax + 0x35]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0x9faacd35
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x8d
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x415bd0
mov dword [esp + 0x48], 0x63f565f6
mov dword [esp + 0x4c], 0x6fcb61fb
mov dword [esp + 0x50], 0x6bf16df0
mov dword [esp + 0x54], 0x57c369c2
mov dword [esp + 0x58], 0x53c055c2
mov dword [esp + 0x5c], 0x5f8351b2
mov dword [esp + 0x60], 0x5bc45df5
mov dword [esp + 0x64], 0x47f559f1
mov dword [esp + 0x68], 0x43ea45a6
mov dword [esp + 0x6c], 0x4fd041c5
mov dword [esp + 0x70], 0x4bd14de1
mov dword [esp + 0x74], 0x37a849d7
mov dword [esp + 0x78], 0x339e35e5
mov dword [esp + 0x7c], 0x3fde31d2
mov word [esp + 0x80], 0x3d3e
mov dword [esp + 0x82], 0
mov word [esp + 0x86], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x3f
ja 0x415cfc
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x11]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xd6871e11
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x89
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x40
jb 0x415cc0
movzx ecx, word [esp + 0x48]
mov eax, dword [esp + 0x28]
test cx, cx
je 0x415d31
lea edx, [esp + 0x4a]
mov eax, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415d20
mov word [eax], 0
mov edx, dword [esp + 0xc]
movzx ecx, word [edx]
test cx, cx
je 0x415d61
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 0x415d50
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x415d91
lea edx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415d80
mov word [eax], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0x89047569
push dword [0x448624]
call fcn.0043bd20
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x48]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442d68]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0x5c5d5e5f
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb7], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xa
ja 0x415ef8
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb0]
mov esi, ecx
and esi, 0x385652f4
xor ecx, 0xb85652f4
lea esi, [ecx + esi*2]
mov ecx, esi
and ecx, edx
add esi, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x54
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xb
jb 0x415ea0
mov ecx, dword [0x448630]
test ecx, ecx
je case.0x4155ce.62
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x416543
inc esi
cmp ecx, esi
jne 0x415f20
jmp case.0x4155ce.62
sete al
movzx eax, al
jmp dword [eax*4 + 0x442d18]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x442d20]
jmp dword [0x442d38]
push 0x51b4a2b7
push dword [0x448624]
call fcn.0043bd20
add esp, 8
push 0
push 0
push dword [esp + 0x3c]
push 0x41e4c0
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442d40]
jmp dword [0x442d60]
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x110]
jmp dword [ecx*4 + 0x442d70]
xor eax, eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442d88]
push ecx
call fcn.00409240
add esp, 4
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x442d90]
jmp dword [0x442d4c]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xb8797400
mov dword [esp + 0x48], 0x5c5d5e5f
mov dword [esp + 0x4c], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x416090
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 + 0x48]
mov edx, eax
and edx, 0x385652f4
xor eax, 0xb85652f4
lea edx, [eax + edx*2]
mov eax, edx
and eax, ecx
add edx, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x54
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x416040
mov eax, dword [0x448630]
test eax, eax
je 0x41628b
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x10c53004
je 0x416267
inc edx
cmp eax, edx
jne 0x4160b0
jmp 0x41628b
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0x89047569
push dword [0x448624]
call fcn.0043bd20
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x48]
push dword [esp + 0x30]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442d28]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0x5c5d5e5f
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb7], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xa
ja 0x416228
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb0]
mov esi, ecx
and esi, 0x385652f4
xor ecx, 0xb85652f4
lea esi, [ecx + esi*2]
mov ecx, esi
and ecx, edx
add esi, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x54
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xb
jb 0x4161d0
mov ecx, dword [0x448630]
test ecx, ecx
je case.0x4155ce.46
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x41656c
inc esi
cmp ecx, esi
jne 0x416250
jmp case.0x4155ce.46
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41628b
lea ecx, [esp + 0xb0]
push ecx
push 0
push esi
push 3
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x18
mov dword [esp + 0x48], 0x5c5d5e5f
mov dword [esp + 0x4c], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x416310
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 + 0x48]
mov edx, eax
and edx, 0x385652f4
xor eax, 0xb85652f4
lea edx, [eax + edx*2]
mov eax, edx
and eax, ecx
add edx, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x54
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x4162c0
mov eax, dword [0x448630]
test eax, eax
je case.0x4155ce.55
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x416340
inc edx
cmp eax, edx
jne 0x416330
jmp case.0x4155ce.55
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.0x4155ce.55
push esi
push 1
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x10
jmp case.0x4155ce.55
jmp dword [0x442d50]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xb8797400
mov dword [esp + 0x48], 0x5c5d5e5f
mov dword [esp + 0x4c], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x416400
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 + 0x48]
mov edx, eax
and edx, 0x385652f4
xor eax, 0xb85652f4
lea edx, [eax + edx*2]
mov eax, edx
and eax, ecx
add edx, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x54
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x4163b0
mov eax, dword [0x448630]
test eax, eax
je 0x416460
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x10c53004
je 0x416430
inc edx
cmp eax, edx
jne 0x416420
jmp 0x416460
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x416460
lea ecx, [esp + 0xb0]
push ecx
push 0
push esi
push 3
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x18
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0x5c5d5e5f
mov dword [esp + 0x4c], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x4164e0
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, eax
and edx, 0x385652f4
xor eax, 0xb85652f4
lea edx, [eax + edx*2]
mov eax, edx
and eax, ecx
add edx, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x54
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x416490
mov eax, dword [0x448630]
test eax, eax
je 0x416360
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x416520
inc edx
cmp eax, edx
jne 0x416500
jmp 0x416360
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x416360
push esi
push 1
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x10
jmp 0x416360
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4165ec
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x110]
jmp dword [ecx*4 + 0x442d70]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x41661b
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x110]
jmp dword [ecx*4 + 0x442d70]
jmp dword [0x442d84]
push eax
call fcn.00438c40
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442d88]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x442d90]
push dword [esp + 0x28]
call fcn.00409240
add esp, 4
nop
nop
jmp dword [0x442da0]
inc ebx
jmp 0x414700
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x110]
jmp dword [ecx*4 + 0x442d70]
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x110]
jmp dword [ecx*4 + 0x442d70]
jmp dword [0x442b9c]
mov bl, 1
jmp dword [0x442ba8]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
mov eax, dword [case.0x416643.38]
jmp case.0x416643.37
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [case.0x416643.18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x20], edi
lea eax, [esp + 0x10]
push 0
push eax
push dword [esp + 0x10]
call fcn.0043cb90
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x442e74]
mov esi, dword [esp + 0x10]
push esi
call fcn.00409230
add esp, 4
push 0
push esi
mov dword [esp + 0xc], eax
push eax
push dword [esp + 0x14]
call fcn.0043cc90
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x442e7c]
jmp dword [0x442e84]
jmp dword [0x442e9c]
push dword [esp + 4]
call fcn.00409240
add esp, 4
mov eax, dword [esp + 8]
mov dword [esp + 0x10], 0x5c5d5e5f
mov dword [esp + 0x14], 0
mov dword [esp + 0x17], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xa
ja 0x4169fa
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx - 0x47a9ad0c]
add ecx, 0xf4
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x28]
add cl, 0x54
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xb
jb 0x4169c0
mov ecx, dword [0x448630]
test ecx, ecx
je 0x416a3a
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x448634]
cmp dword [edi + esi*8], 0xad91fd63
je 0x416a20
inc esi
cmp ecx, esi
jne 0x416a10
jmp 0x416a3a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x416a3a
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
mov eax, dword [case.0x416643.38]
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442eb4]
push edi
call fcn.00409240
add esp, 4
mov eax, dword [case.0x416643.54]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, eax
jmp dword [0x442e94]
push edi
call fcn.00409240
add esp, 4
jmp dword [0x442e9c]
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x416aa0
lea ecx, [esi + eax]
add ecx, 0xfffffffe
mov eax, esi
not eax
and eax, ecx
xor ecx, esi
add eax, eax
sub eax, ecx
sar eax, 1
mov ebx, dword [edx + 8]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x416ad0
inc eax
lea edx, [ebx + ecx]
add edx, 0xfffffffe
mov ecx, ebx
not ecx
and ecx, edx
xor edx, ebx
add ecx, ecx
sub ecx, edx
sar ecx, 1
mov edx, ecx
and edx, eax
xor ecx, eax
add ecx, dword [esp + 0x24]
lea ecx, [ecx + edx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x416b08
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x416b31
add esi, 2
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x416b20
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x416b61
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x416b50
mov word [eax], 0x2f
add eax, 2
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
test cx, cx
je 0x416b91
add edx, 2
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 0x416b80
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x10]
push dword [esp + 8]
push edi
call fcn.00409c20
jmp dword [0x442e90]
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
xor eax, eax
mov ebx, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x416bc0
lea ecx, [esi + eax]
add ecx, 0xfffffffe
mov eax, esi
not eax
and eax, ecx
xor ecx, esi
add eax, eax
sub eax, ecx
mov edi, dword [edx + 8]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx], 0
lea ecx, [ecx + 2]
jne 0x416bf0
sar eax, 1
lea edx, [edi + ecx]
add edx, 0xfffffffe
mov ecx, edi
not ecx
and ecx, edx
xor edx, edi
add ecx, ecx
sub ecx, edx
sar ecx, 1
add eax, dword [esp + 0xc]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 3
lea eax, [edx + edx]
add eax, 6
test ecx, ecx
jns 0x416c2b
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
movzx edx, word [esi]
mov ecx, eax
test dx, dx
je 0x416c61
add esi, 2
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x416c50
mov word [ecx], 0x2f
add ecx, 2
movzx edx, word [edi]
test dx, dx
je 0x416c91
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x416c80
mov word [ecx], 0x2f
add ecx, 2
movzx edx, word [ebx]
test dx, dx
je 0x416cc1
lea esi, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x416cb0
mov word [ecx], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x10]
push dword [esp + 8]
push eax
call fcn.00409c20
jmp case.0x416643.24
int3