Function at 0x412610
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [0x450f2c]
sub esp, 0x98
push ebx
push ebp
push esi
push edi
push eax
mov esi, ecx
call fcn.0042ae04
mov ecx, dword [0x450f2c]
mov edx, dword [ecx + 4]
mov dword [esi + 0x368], edx
mov eax, dword [0x450f2c]
mov eax, dword [eax + 8]
add esp, 4
mov dword [esi + 0x36c], eax
cmp dword [esi + 0x370], eax
je 0x412683
cmp byte [esi + 0x600], 0
je 0x412662
test edx, edx
jbe 0x412683
push 0
push 0
mov ecx, esi
call fcn.0040c1d0
mov ecx, dword [esi + 0x36c]
mov dword [esi + 0x370], ecx
mov dword [esi + 0x364], 0
mov eax, dword [0x450f2c]
mov edx, 0x3b
sub edx, dword [eax]
mov eax, dword [esi + 0x360]
mov dword [esi + 0x61c], edx
mov edx, dword [0x450f2c]
mov ecx, 0x3b
sub ecx, dword [edx + 4]
mov dword [esi + 0x618], ecx
mov ecx, dword [0x450f2c]
cmp eax, dword [ecx]
je 0x4126de
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x4126d0
mov ecx, dword [0x44dd44]
call fcn.0041cab0
mov edx, dword [0x450f2c]
mov eax, dword [edx]
mov dword [esi + 0x360], eax
movzx ecx, word [str.123456789]
push ecx
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 0
mov byte [esp + 0x29], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
mov byte [esp + 0x28], 0
call fcn.00424590
movzx edx, word [0x44c05e]
push edx
mov edi, eax
call fcn.00424590
mov ebp, eax
movzx eax, word [0x44c060]
push eax
call fcn.00424590
movzx ecx, word [0x44c062]
push ecx
mov ebx, eax
call fcn.00424590
movzx edx, word [0x44c064]
push edx
mov dword [esp + 0x74], eax
call fcn.00424590
mov dword [esp + 0x78], eax
movzx eax, word [0x44c066]
push eax
call fcn.00424590
movzx ecx, word [0x44c068]
push ecx
mov dword [esp + 0x38], eax
call fcn.00424590
movzx edx, word [0x44c06a]
push edx
mov dword [esp + 0x40], eax
call fcn.00424590
mov dword [esp + 0x38], eax
movzx eax, word [0x44c06c]
push eax
call fcn.00424590
add esp, 0x24
mov dword [esp + 0x28], eax
cmp edi, 1
jne 0x4127cb
mov eax, dword [0x44dd44]
cmp dword [eax + 0x62140], 3
jne 0x4127ac
mov byte [eax + 0xc3f94], 1
cmp dword [0x4512a4], 0
jle 0x4127c2
mov ecx, dword [0x44dd40]
call fcn.00420360
jmp 0x4127ea
mov byte [esi + 0x335], 1
jmp 0x4127ea
cmp edi, 3
jne 0x4127ea
mov ecx, dword [0x44dd48]
mov byte [ecx + 0x335], 0
mov edx, dword [0x44dd54]
mov byte [edx + 0x32c], 0
cmp ebp, 1
jne 0x412823
mov eax, dword [0x44dd44]
cmp dword [eax + 0x62140], 3
jne 0x412804
mov byte [eax + 0xc3f95], 1
cmp dword [0x4512a4], 0
jle 0x41281a
mov ecx, dword [0x44dd40]
call fcn.004203d0
jmp 0x41283b
mov byte [esi + 0x336], 1
jmp 0x41283b
cmp ebp, 3
jne 0x41283b
mov byte [esi + 0x336], 0
mov eax, dword [0x44dd54]
mov byte [eax + 0x32d], 0
cmp ebx, 1
jne 0x41285f
cmp dword [0x4512a4], 0
jle 0x412856
mov ecx, dword [0x44dd40]
call fcn.00420510
jmp 0x41287e
mov byte [esi + 0x337], 1
jmp 0x41287e
cmp ebx, 3
jne 0x41287e
mov ecx, dword [0x44dd48]
mov byte [ecx + 0x337], 0
mov edx, dword [0x44dd54]
mov byte [edx + 0x32e], 0
mov eax, dword [esp + 0x60]
cmp eax, 1
jne 0x4128a2
push 0x186a0
call fcn.00424410
mov eax, dword [0x44dd48]
add esp, 4
mov byte [eax + 0x338], 1
jmp 0x4128bb
cmp eax, 3
jne 0x4128bb
mov byte [esi + 0x338], 0
mov ecx, dword [0x44dd54]
mov byte [ecx + 0x32f], 0
mov eax, dword [esp + 0x64]
cmp eax, 1
jne 0x4128e2
cmp byte [esi + 0x388], 0
sete dl
mov byte [esi + 0x388], dl
mov eax, dword [0x44dd48]
mov byte [eax + 0x339], 1
jmp 0x4128fb
cmp eax, 3
jne 0x4128fb
mov byte [esi + 0x339], 0
mov ecx, dword [0x44dd54]
mov byte [ecx + 0x330], 0
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x412924
cmp byte [esi + 0x328], 0
jne 0x412924
cmp byte [esi + 0x388], 0
jne 0x412924
cmp eax, 3
jne 0x41295f
mov byte [esi + 0x328], 0
jmp 0x41295f
mov eax, dword [0x44dd44]
cmp dword [eax + 0x62140], 3
jne 0x412939
mov byte [eax + 0xc3f95], 1
cmp byte [0x451292], 0
jne 0x41295f
mov ecx, dword [0x44dd54]
cmp byte [ecx + 0x62124], 0
jne 0x41295a
mov byte [esi + 0x328], 1
jmp 0x41295f
call fcn.00421b30
cmp dword [esp + 0x20], 1
jne 0x412981
mov ecx, dword [0x44dd40]
cmp byte [ecx + 0x365], 0
jne 0x41297c
call fcn.0041f5d0
jmp 0x412981
call fcn.0041f680
mov edi, 1
cmp dword [esp + 0x18], edi
jne 0x4129a7
mov ecx, dword [0x44dd40]
cmp byte [ecx + 0x365], 0
jne 0x4129a2
call fcn.0041f630
jmp 0x4129a7
call fcn.0041f680
cmp dword [esp + 0x28], edi
jne 0x4129c8
mov ecx, dword [0x44dd40]
cmp byte [ecx + 0x365], 0
jne 0x4129c3
call fcn.0041f580
jmp 0x4129c8
call fcn.0041f680
cmp byte [esi + 0x328], 0
je 0x4129ed
cmp byte [esi + 0x600], 0
mov byte [esp + 0x16], 1
jne 0x4129e8
cmp byte [0x450ed5], 0
je 0x4129ed
mov byte [esp + 0x16], 0
cmp byte [esi + 0x335], 0
je 0x4129fb
mov byte [esp + 0x17], 1
cmp byte [esi + 0x336], 0
je 0x412a09
mov byte [esp + 0x25], 1
cmp byte [esi + 0x337], 0
je 0x412a17
mov byte [esp + 0x27], 1
cmp byte [esi + 0x338], 0
je 0x412a25
mov byte [esp + 0x26], 1
cmp byte [esi + 0x339], 0
je 0x412a33
mov byte [esp + 0x24], 1
mov eax, dword [esi + 0x63c]
sub eax, edi
jne 0x412a89
cmp byte [esp + 0x16], al
je 0x412a89
call fcn.00424370
cmp eax, 0x3e8
jge 0x412a73
call fcn.00424360
cmp eax, 0x3e8
jge 0x412a73
mov ecx, dword [0x44dd54]
cmp dword [ecx + 0x620ec], 0
jle 0x412a8f
cmp dword [esi + 0x9ec], 0
jne 0x412a8f
mov dword [esi + 0x63c], 0
mov dword [esi + 0x9ec], edi
mov dword [esi + 0x9a8], edi
mov ecx, dword [0x44dd54]
mov eax, dword [esi + 0x9ec]
lea edx, [eax - 1]
mov edi, 0xa
lea ebx, [edi + 0xf]
lea ebp, [edi + 0x12]
cmp edx, 0x1e
ja case.0x412aac.8
jmp dword [edx*4 + 0x415cb0]
mov ecx, dword [0x44dd58]
push 0
call fcn.00416ab0
mov ecx, dword [esi + 0x324]
push 8
call fcn.00401d30
mov edx, dword [0x44dd48]
mov dword [edx + 0x9a4], 0
call fcn.00424370
cmp eax, 0x7d0
jl 0x412aff
call fcn.00424300
cmp eax, 0x3e8
jne 0x412aff
mov dword [0x44c080], 0x7d0
inc dword [esi + 0x614]
push 0x31
mov ecx, esi
call fcn.00402570
cmp dword [esi + 0x5c0], 0
mov byte [esi + 0x6cc], 0
mov byte [esi + 0x6cd], 0
mov byte [esi + 0x9b9], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x18], 0
je 0x412b44
cmp byte [esi + 0x5bc], 0
je 0x412b44
mov byte [esp + 0x18], 1
mov ecx, esi
call fcn.004025d0
xor edi, edi
mov dword [esi + 0x610], edi
mov eax, dword [0x44dd54]
xor ebx, ebx
cmp dword [eax + 0x620ec], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
jle 0x412b84
mov dword [esi + 0x610], 3
mov ecx, dword [0x44dd54]
call fcn.00421a80
jmp 0x412d34
call fcn.00424370
cmp eax, 0x3e8
jl 0x412c99
mov dword [esi + 0x610], 2
call fcn.00424300
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
cmp byte [esi + 0x391], bl
je 0x412bf8
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub dword [esi + 0x394], eax
mov ecx, eax
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, eax
cmp dword [esi + 0x394], ebx
lea ebp, [ebp + ecx*2]
jg 0x412bf8
mov byte [esi + 0x391], bl
call fcn.00424370
cmp eax, 0x7d0
jge 0x412c32
mov dword [0x44c080], 0x3e8
call fcn.00424370
cmp eax, 0x3e8
jge 0x412c32
call fcn.00424370
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
call fcn.00424510
test ebp, ebp
jle 0x412d34
nop
cmp byte [esp + 0x18], 0
jne 0x412c7a
mov ecx, dword [0x44dd58]
push 0
lea edx, [esp + 0x9c]
push edx
call fcn.00416d80
mov edi, dword [eax]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
test edi, edi
jle 0x412c8f
mov byte [esp + 0x18], 1
jmp 0x412c8f
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [0x44dd58]
call fcn.00416d80
sub ebp, 1
jne 0x412c40
jmp 0x412d34
call fcn.00424360
cmp eax, 0x3e8
jl case.0x412aac.8
call fcn.00424300
mov ecx, 0x3e8
cmp eax, ecx
je 0x412cbd
mov dword [0x44c080], ecx
add dword [esi + 0x364], ecx
push 0x64
mov dword [esi + 0x610], 1
call fcn.00424530
add esp, 4
mov ebp, 0xa
lea esp, [esp]
cmp byte [esp + 0x18], 0
jne 0x412d1a
mov ecx, dword [0x44dd58]
push 0
lea edx, [esp + 0x8c]
push edx
call fcn.00416d80
mov edi, dword [eax]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
test edi, edi
jle 0x412d2f
mov byte [esp + 0x18], 1
jmp 0x412d2f
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [0x44dd58]
call fcn.00416d80
sub ebp, 1
jne 0x412ce0
cmp dword [esi + 0x5c0], 0
jle 0x412d4c
cmp dword [esi + 0x610], 3
je 0x412d4c
dec dword [esi + 0x5d8]
mov ecx, esi
call fcn.00411a50
push 0
mov ecx, esi
call fcn.00411620
mov byte [esi + 0x550], 0
mov ecx, dword [0x44dd54]
push 1
call fcn.00421aa0
cmp dword [esp + 0x30], 0
mov byte [esi + 0x9f8], 0
jle 0x412fba
test edi, edi
jle 0x412fba
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x3c
jge 0x412de5
push 1
push 0xffffffffffffffff
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, edi
cdq
idiv ecx
mov ecx, esi
push eax
call fcn.0040cc40
mov dword [esi + 0x384], eax
mov ecx, dword [0x44dd58]
lea edx, [eax + eax*2]
mov eax, edi
sub eax, dword [edx*4 + 0x44c130]
push eax
call fcn.00416450
jmp 0x412e26
push 0
push 1
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, edi
cdq
idiv ecx
mov ecx, esi
push eax
call fcn.0040cc40
mov dword [esi + 0x384], eax
lea edx, [eax + eax*2]
mov eax, edi
sub eax, dword [edx*4 + 0x44c130]
add dword [esi + 0x538], eax
cmp dword [0x44c088], 0xb
mov al, 1
jne 0x412e40
mov ecx, ebx
imul ecx, edi
cmp ecx, 0xc350
jl 0x412e40
xor al, al
cmp dword [esi + 0x384], 0xffffffff
jne 0x412e52
cmp edi, 1
jne 0x412fdc
test al, al
je 0x412fdc
mov edx, dword [0x44dd58]
mov ebp, dword [edx + 0x169c]
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x412eee
cmp byte [0x450ed6], 0
jne 0x412eee
call fcn.00424300
cmp eax, 0x3e8
jne 0x412ea3
mov edx, dword [esp + 0x34]
push edx
push 1
push ebx
push edi
push 0x64
mov ecx, esi
call fcn.0040c980
jmp 0x412fdc
cmp edi, 0x4e20
mov ebp, 0xa
jl 0x412ec2
cmp edi, 0x11170
mov ebp, 0x2d
jl 0x412ec2
mov ebp, 0x55
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x412f5b
mov edx, dword [esp + 0x34]
push edx
push 1
push ebx
push edi
push 0x4d
mov ecx, esi
call fcn.0040c980
jmp 0x412fdc
mov eax, dword [0x44dd58]
mov ebp, dword [eax + 0x16a8]
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x412f3e
cmp byte [0x450ed6], 0
jne 0x412f3e
imul ebx, edi
add dword [esi + 0x538], ebx
xor edi, edi
mov dword [esi + 0x384], 0xffffffff
mov byte [esp + 0x17], 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
jmp 0x412fdc
mov edx, dword [0x44dd58]
mov ebp, dword [edx + 0x16b4]
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x412f67
mov dword [esi + 0x5f0], 1
jmp 0x412fdc
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x1e
jg 0x412f8d
mov edx, dword [esp + 0x34]
push edx
push 1
push ebx
push edi
push 0x67
mov ecx, esi
call fcn.0040c980
jmp 0x412fdc
mov byte [esi + 0x550], 1
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x5a
jg 0x412fdc
mov edx, dword [esp + 0x34]
push edx
push 1
push ebx
push edi
push 0x6e
mov ecx, esi
call fcn.0040c980
jmp 0x412fdc
call fcn.0042ad50
cdq
mov ecx, 0x50
idiv ecx
cmp edx, 0xd
jne 0x412fdc
cmp dword [esi + 0x610], 3
je 0x412fdc
mov byte [esi + 0x550], 1
cmp byte [esi + 0x550], 0
je 0x4130de
cmp edi, 0x3e8
jge 0x413007
call fcn.0042ad50
cdq
mov ecx, 0xdc
idiv ecx
cmp edx, 0xa
jl 0x413007
xor al, al
jmp 0x413009
mov al, 1
xor ebx, ebx
mov byte [esi + 0x551], al
mov dword [esi + 0x554], 0xffffffff
mov byte [esi + 0x558], 0
cmp edi, ebx
je 0x41306a
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jl 0x41306a
cmp edi, 0x4e20
jle 0x41305e
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jl 0x41305e
mov dword [esi + 0x548], 2
jmp 0x413070
mov dword [esi + 0x548], 1
jmp 0x413070
mov dword [esi + 0x548], ebx
cmp byte [esi + 0x551], 0
mov dword [esi + 0x544], ebx
je 0x413093
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jge 0x4130af
jmp 0x4130a5
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x19
jg 0x4130af
mov dword [esi + 0x544], 1
mov edx, dword [esi + 0x544]
mov ecx, dword [esi + edx*4 + 0x528]
call fcn.004053c0
mov ecx, dword [esi + 0x530]
call fcn.004053c0
mov eax, dword [esi + 0x530]
or ecx, 0xffffffff
mov word [eax + 0x408], cx
jmp 0x4130e0
xor ebx, ebx
xor edi, edi
call fcn.00424300
cmp eax, 0x3e8
jne 0x413142
cmp dword [esi + 0x610], 1
jne 0x413142
cmp byte [0x450ed6], 0
je 0x41310d
cmp byte [esi + 0x550], 0
je 0x4132a8
mov byte [esi + 0x9f8], 1
call fcn.0042ad50
mov edi, eax
and edi, 0x80000003
jns 0x413128
dec edi
or edi, 0xfffffffc
inc edi
add edi, 2
cmp byte [esi + 0x550], 0
je 0x4132a8
mov edi, 1
jmp 0x4132a8
cmp dword [esi + 0x610], 3
jne 0x4132a8
cmp dword [esi + 0x538], 0x3e8
jl 0x413286
mov edx, dword [0x44dd54]
mov eax, dword [edx + 0x620ec]
mov ebp, 0x23
test eax, eax
jne 0x413179
lea ebp, [eax + 0x64]
jmp 0x41319b
cmp eax, 3
jge 0x413185
mov ebp, 0x5a
jmp 0x41319b
cmp eax, 7
jge 0x413191
mov ebp, 0x3c
jmp 0x41319b
cmp eax, 0xc
jge 0x41319b
mov ebp, 0x2d
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x41327c
mov edi, dword [esi + 0x538]
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7d0
cmp edi, eax
jle 0x413251
call fcn.0042ad50
cdq
mov ecx, 0x96
idiv ecx
cmp edx, 0xa
jl 0x413251
mov edi, dword [esi + 0x538]
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x2710
cmp edi, eax
jle 0x41323d
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x1e
jle 0x41323d
call fcn.0042ad50
mov edi, eax
and edi, 0x80000003
jns 0x413238
dec edi
or edi, 0xfffffffc
inc edi
add edi, 0xe
jmp 0x413256
call fcn.0042ad50
cdq
mov ecx, 5
idiv ecx
mov edi, edx
add edi, 9
jmp 0x413256
mov edi, 9
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [edi*8 + 0x44c3d0]
sub dword [esi + 0x538], eax
mov dword [esi + 0x5e8], edi
xor ebx, ebx
jmp 0x4132a8
call fcn.0042ad50
cdq
mov ecx, 0x44
idiv ecx
cmp edx, 0x11
jne 0x4132a8
call fcn.0042ad50
cdq
mov ecx, 5
idiv ecx
mov edi, edx
inc edi
cmp byte [esp + 0x17], 0
je 0x4132c1
call fcn.0042ad50
cdq
mov ecx, 3
idiv ecx
mov edi, edx
add edi, 6
push ebx
push ebx
push edi
mov ecx, esi
call fcn.0040f960
test al, al
je 0x4132c1
mov eax, dword [esi + 0x9f0]
cmp eax, ebx
jle 0x4132eb
mov dword [esi + 0x5e8], eax
mov dword [esi + 0x9f0], ebx
mov dword [esi + 0x9f4], ebx
cmp dword [esi + 0x5f0], ebx
jle 0x413353
mov eax, dword [esi + 0x384]
cmp eax, ebx
mov dword [esi + 0x5f0], ebx
mov byte [esi + 0x9e8], 1
jl 0x413330
lea eax, [eax + eax*2]
add eax, eax
mov edx, dword [eax + eax + 0x44c134]
add eax, eax
mov dword [esi + 0x5e8], edx
mov eax, dword [eax + 0x44c138]
mov ecx, dword [0x44dd54]
push eax
call fcn.00421aa0
cmp dword [esi + 0x5e8], 0xe
jne 0x413353
call fcn.0042ad50
and eax, 0x80000001
jns 0x41334a
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xe
mov dword [esi + 0x5e8], eax
mov eax, dword [esi + 0x5e8]
cmp eax, ebx
jle 0x413382
movzx ecx, byte [esi + 0x5ed]
movzx edx, byte [esi + 0x5ec]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0040f960
mov dword [esi + 0x5e8], ebx
mov byte [esi + 0x5ec], 0
mov ecx, esi
call fcn.0040c850
mov eax, dword [esi + 0x610]
sub eax, 3
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 4
mov dword [esi + 0x9ec], 2
mov dword [esi + 0x9a8], eax
jmp case.0x412aac.8
cmp byte [esi + 0x640], 0
je case.0x412aac.8
mov ecx, esi
mov dword [esi + 0x9ec], 3
mov dword [esi + 0x638], 0
call fcn.00410cd0
jmp case.0x412aac.8
cmp byte [esp + 0x17], 0
je 0x413423
mov ecx, dword [esi + 0x324]
push 1
mov byte [esi + 0x6cd], 1
call fcn.00401cb0
test eax, eax
jne 0x41340a
mov ecx, dword [esi + 0x324]
push 1
call fcn.00401d30
cmp byte [esi + 0x709], 0
je 0x413423
cmp byte [esi + 0x708], 0
sete cl
mov byte [esi + 0x708], cl
cmp byte [esp + 0x25], 0
je 0x413468
mov ecx, dword [esi + 0x324]
push 1
mov byte [esi + 0x6cd], 1
call fcn.00401cb0
test eax, eax
jne 0x41344f
mov ecx, dword [esi + 0x324]
push 1
call fcn.00401d30
cmp byte [esi + 0x731], 0
je 0x413468
cmp byte [esi + 0x730], 0
sete dl
mov byte [esi + 0x730], dl
cmp byte [esp + 0x27], 0
je 0x4134ad
mov ecx, dword [esi + 0x324]
push 1
mov byte [esi + 0x6cd], 1
call fcn.00401cb0
test eax, eax
jne 0x413494
mov ecx, dword [esi + 0x324]
push 1
call fcn.00401d30
cmp byte [esi + 0x759], 0
je 0x4134ad
cmp byte [esi + 0x758], 0
sete al
mov byte [esi + 0x758], al
cmp byte [esp + 0x26], 0
je 0x4134f2
mov ecx, dword [esi + 0x324]
push 1
mov byte [esi + 0x6cd], 1
call fcn.00401cb0
test eax, eax
jne 0x4134d9
mov ecx, dword [esi + 0x324]
push 1
call fcn.00401d30
cmp byte [esi + 0x781], 0
je 0x4134f2
cmp byte [esi + 0x780], 0
sete cl
mov byte [esi + 0x780], cl
cmp byte [esp + 0x24], 0
je 0x413537
mov ecx, dword [esi + 0x324]
push 1
mov byte [esi + 0x6cd], 1
call fcn.00401cb0
test eax, eax
jne 0x41351e
mov ecx, dword [esi + 0x324]
push 1
call fcn.00401d30
cmp byte [esi + 0x7a9], 0
je 0x413537
cmp byte [esi + 0x7a8], 0
sete dl
mov byte [esi + 0x7a8], dl
cmp byte [esp + 0x16], 0
je case.0x412aac.8
or edi, 0xffffffff
cmp dword [esi + 0x5c8], 0
jge 0x413563
call fcn.0042ad50
cdq
mov ecx, 0x96
idiv ecx
cmp edx, 0x87
jge 0x413597
xor edi, edi
call fcn.0042ad50
cdq
mov ecx, 0x96
idiv ecx
cmp edx, 0x41
jg 0x41358b
mov edx, dword [0x44dd54]
mov eax, dword [edx + 0x6214c]
cmp eax, 2
jge 0x41358b
lea edi, [eax + 1]
mov eax, dword [esi + 0x5c8]
test eax, eax
jl 0x413597
mov edi, eax
mov ecx, dword [0x44dd54]
push edi
call fcn.00421b70
push 2
mov ecx, esi
mov dword [esi + 0x9ec], 4
call fcn.004024e0
push 0
push 0xffffffffffffffff
mov ecx, esi
call fcn.00411280
jmp case.0x412aac.8
cmp byte [esi + 0x640], 0
je case.0x412aac.8
cmp byte [esi + 0x550], 0
jne 0x4135eb
mov dword [esi + 0x9ec], 0x1b
jmp case.0x412aac.8
cmp dword [esi + 0x554], 0xffffffff
mov dword [esi + 0x9ec], 7
jne case.0x412aac.8
mov ecx, dword [esi + 0x6f8]
mov edx, dword [esi + 0x724]
mov eax, dword [esi + 0x6fc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x74c]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x748]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x720]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x770]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x79c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x774]
mov dword [esp + 0x50], ecx
lea edi, [esi + 0x79c]
lea ecx, [esp + 0x38]
mov dword [esp + 0x5c], edx
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x798]
lea edx, [esp + 0x6c]
push edx
mov ecx, esi
mov dword [esp + 0x60], eax
call fcn.0040c350
mov eax, dword [esp + 0x68]
cmp eax, 1
je 0x4136ae
jle 0x4136c1
cmp eax, 5
jg 0x4136c1
mov edx, dword [esp + 0x70]
mov eax, 4
mov ecx, edi
cmp edx, dword [ecx]
je 0x4136a6
dec eax
sub ecx, 0x28
test eax, eax
jge 0x413698
jmp 0x4136c1
mov dword [esi + 0x554], eax
jmp 0x4136c1
call fcn.0042ad50
cdq
mov ecx, 5
idiv ecx
mov dword [esi + 0x554], edx
mov eax, dword [esi + 0x554]
lea edx, [eax + eax*4]
mov byte [esi + 0x558], 1
mov dword [esi + edx*8 + 0x6e4], 0xa
jmp case.0x412aac.8
cmp byte [esi + 0x640], 0
je case.0x412aac.8
mov dword [esi + 0x9ec], 0x1b
jmp case.0x412aac.8
mov ecx, esi
call fcn.00410cd0
push 0
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.0040c350
mov edi, dword [esp + 0x68]
cmp edi, 2
jl 0x413978
push 1
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [edi*8 + 0x44c3d0]
push ecx
mov ecx, dword [0x44dd60]
push edi
call fcn.00425900
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [edi*8 + 0x44c3d0]
mov dword [esi + 0x9cc], eax
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [edi*8 + 0x44c3d0]
mov dword [0x4512b4], ecx
mov ebp, dword [esi + 0x618]
mov ebx, dword [esi + 0x364]
mov dword [esi + 0x9c0], 0
call fcn.0042ad50
cdq
mov ecx, 0x33
idiv ecx
mov ecx, 0x2710
sub ecx, ebx
mov eax, edx
mov dword [esp + 0x28], eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov eax, ebp
shl eax, 4
sub eax, ebp
add eax, eax
add eax, eax
cdq
idiv ecx
mov ecx, dword [esp + 0x28]
lea ebp, [ecx + eax - 0x19]
mov eax, dword [0x44c058]
cmp ebp, eax
jge 0x4137fe
mov ebp, eax
cmp ebp, 0x1e
jge 0x413808
mov ebp, 0x1e
mov eax, dword [esi + 0x384]
xor ebx, ebx
test eax, eax
jl 0x41383d
cmp byte [0x450ed6], bl
je 0x41383d
mov ecx, dword [0x44dd54]
lea eax, [eax + eax*2]
add eax, eax
mov edx, dword [eax + eax + 0x44c138]
mov ebx, dword [eax + eax + 0x44c134]
add eax, eax
push edx
call fcn.00421aa0
cmp ebp, 0x14f
jle 0x41384a
mov ebp, 0x14f
cmp dword [esi + 0x610], 3
je 0x413943
lea eax, [edi - 2]
cmp eax, 6
ja 0x413920
cmp edi, 6
jge 0x4138f0
mov dword [esi + 0x9ec], 5
call fcn.00424300
cmp eax, 0x7d0
mov al, byte [0x450ed6]
je 0x41388b
test al, al
je 0x4138a6
mov ebp, 0x55
test al, al
je 0x4138a6
cmp byte [esi + 0x550], 0
je 0x413912
cmp byte [esi + 0x551], 0
je 0x413912
cmp byte [esi + 0x550], 0
je 0x4138d4
cmp byte [esi + 0x551], 0
je 0x4138d4
mov al, 1
push 0
mov ecx, esi
push eax
push ebp
push ebx
call fcn.0040ec80
push 0x15
mov ecx, esi
call fcn.004024e0
jmp case.0x412aac.8
xor al, al
push 0
mov ecx, esi
push eax
push ebp
push ebx
call fcn.0040ec80
push 0x15
mov ecx, esi
call fcn.004024e0
jmp case.0x412aac.8
mov ecx, dword [esi + 0x684]
push 1
push 0
push ecx
mov dword [esi + 0x9ec], 6
mov ecx, dword [0x44dd5c]
push 3
call fcn.00419540
push 0x15
mov ecx, esi
call fcn.004024e0
jmp case.0x412aac.8
push 7
call fcn.004242e0
add esp, 4
mov dword [esi + 0x9c8], 0
mov dword [esi + 0x9ec], 0x19
jmp case.0x412aac.8
cmp edi, 9
jge 0x413957
mov dword [esi + 0x9ec], 0xe
jmp case.0x412aac.8
mov edx, dword [esi + 0x9cc]
mov ecx, dword [0x44dd60]
push edx
call fcn.00424a40
mov dword [esi + 0x9ec], 0xf
jmp case.0x412aac.8
push 7
call fcn.004242e0
add esp, 4
mov dword [esi + 0x9ec], ebp
lea eax, [esi + 0x708]
mov ecx, 5
mov byte [eax], 0
add eax, 0x28
sub ecx, 1
jne 0x413993
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 0x85
jne case.0x412aac.8
xor eax, eax
mov dword [esi + 0x9a8], 8
mov ecx, dword [0x44dd54]
cmp dword [ecx + 0x620ec], eax
setle al
dec eax
and eax, 0xc
add eax, 0x13
mov dword [esi + 0x9ec], eax
jmp case.0x412aac.8
mov edx, dword [0x44dd60]
cmp word [edx + 0x390], 0
jne case.0x412aac.8
cmp eax, 0xf
jne 0x413a1d
mov eax, dword [esi + 0x9cc]
mov dword [0x4512b0], eax
mov dword [0x4512b4], 0
mov ecx, dword [esi + 0x9cc]
push ecx
call fcn.00424390
add esp, 4
mov dword [esi + 0x9a8], 5
mov dword [esi + 0x9ec], 0x10
mov ecx, dword [0x44dd60]
call fcn.004249c0
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 0x81
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0x14
call fcn.00424380
mov ecx, dword [0x44dd60]
push eax
call fcn.00424a40
mov dword [esi + 0x5ac], edi
jmp case.0x412aac.8
push 0
push 0x3e8
mov ecx, esi
call fcn.00402510
test eax, eax
jne 0x413a95
cmp dword [esi + 0x5ac], eax
jne case.0x412aac.8
dec dword [esi + 0x5ac]
cmp dword [esi + 0x5ac], 0
jg case.0x412aac.8
mov dword [esi + 0x9ec], 0x15
jmp case.0x412aac.8
mov edx, dword [0x44dd60]
cmp word [edx + 0x390], 0
jne case.0x412aac.8
push 1
call fcn.00424380
push eax
call fcn.004243e0
push 0
call fcn.004243a0
push 9
mov dword [esi + 0x9ec], 0x1f
mov dword [esi + 0x9a4], 0
call fcn.004242e0
add esp, 0x10
jmp case.0x412aac.8
cmp byte [esi + 0x389], 0
jne case.0x412aac.8
push 0
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.0040c350
mov edi, dword [esp + 0x68]
cmp edi, 9
jge 0x413b3b
push 7
mov dword [esi + 0x9ec], ebp
call fcn.004242e0
add esp, 4
jmp case.0x412aac.8
push 1
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [edi*8 + 0x44c3d0]
push ecx
mov ecx, dword [0x44dd60]
push edi
call fcn.00425900
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [edi*8 + 0x44c3d0]
mov dword [esi + 0x9cc], eax
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [edi*8 + 0x44c3d0]
mov dword [0x4512b4], ecx
push 7
mov dword [esi + 0x9ec], ebx
call fcn.004242e0
add esp, 4
jmp case.0x412aac.8
mov eax, dword [0x44dd5c]
cmp byte [eax + 0x430], 0
jne case.0x412aac.8
cmp byte [eax + 0x43c], 0
jne case.0x412aac.8
cmp byte [eax + 0x43f], 0
jne case.0x412aac.8
xor edx, edx
cmp dword [ecx + 0x620ec], edx
push 7
setle dl
dec edx
and edx, 0xfffffff1
add edx, ebp
mov dword [esi + 0x9ec], edx
call fcn.004242e0
add esp, 4
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 3
jne case.0x412aac.8
xor edi, edi
push edi
mov ecx, esi
call fcn.0040c1a0
mov ecx, esi
call fcn.0040c900
mov dword [esi + 0x63c], 1
mov dword [esi + 0x638], 0xffffffff
mov dword [esi + 0x9ec], edi
mov ecx, dword [0x44dd58]
push edi
call fcn.00416ab0
mov eax, dword [0x4512b0]
push eax
call fcn.004243c0
push edi
call fcn.004243b0
push edi
call fcn.004243a0
add esp, 0xc
mov dword [0x4512b0], edi
jmp case.0x412aac.8
mov ecx, dword [0x44dd60]
cmp byte [ecx + 0x37a], 0
je case.0x412aac.8
mov dword [esi + 0x9ec], ebx
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 3
jne case.0x412aac.8
push 0
lea edx, [esp + 0x6c]
push edx
mov ecx, esi
call fcn.0040c350
mov edi, dword [esp + 0x68]
cmp edi, 9
mov dword [esi + 0x5a8], edi
jl 0x413d30
mov ecx, dword [esi + 0x324]
push 5
call fcn.00401d30
push 0xffffffffffffffff
mov dword [esi + 0x9c8], 0
mov dword [esi + 0x9ec], 0x18
mov ecx, dword [0x44dd54]
push 1
call fcn.00421b00
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [0x44dd60]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [edi*8 + 0x44c3d0]
push eax
push edi
call fcn.00424980
jmp case.0x412aac.8
mov dword [esi + 0x9ec], ebp
jmp case.0x412aac.8
cmp byte [ecx + 0x62125], 0
je case.0x412aac.8
push 0xffffffffffffffff
push 0
call fcn.00421b00
push 0
mov ecx, esi
mov dword [esi + 0x9ec], 0x1a
call fcn.0040c1a0
mov dword [esi + 0x9a8], 4
jmp case.0x412aac.8
mov eax, dword [esi + 0x9c8]
test eax, eax
jne 0x413dfd
mov edx, dword [0x44dd60]
cmp byte [edx + 0x37a], al
je case.0x412aac.8
mov eax, dword [esi + 0x384]
lea eax, [eax + eax*2]
cmp dword [eax*4 + 0x44c138], 1
jg 0x413dbe
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x3c
jge 0x413dee
mov ecx, dword [0x44dd54]
mov edx, dword [ecx + 0x620dc]
mov ecx, dword [0x44dd44]
push 1
push edx
call fcn.0041ef10
mov ecx, dword [0x44dd54]
call fcn.00421ce0
test al, al
jne 0x413dee
mov ecx, dword [0x44dd54]
push 1
call fcn.00423700
mov dword [esi + 0x9c8], 1
jmp case.0x412aac.8
cmp eax, 1
jne case.0x412aac.8
mov eax, dword [0x44dd44]
cmp byte [eax + 0x61fec], 0
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0xb
mov ecx, dword [0x44dd54]
mov edi, dword [ecx + 0x620dc]
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [esi + 0x5a8]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [ecx*8 + 0x44c3d0]
imul eax, edi
mov dword [0x4512b0], eax
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [esi + 0x5a8]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [ecx*8 + 0x44c3d0]
mov edx, dword [0x4512b0]
mov ecx, dword [0x44dd60]
sub edx, eax
push edx
call fcn.00424960
jmp case.0x412aac.8
mov eax, dword [0x44dd60]
cmp byte [eax + 0x37a], 0
je case.0x412aac.8
push 2
push 0x5dc
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x412aac.8
mov eax, dword [0x44dd58]
mov ecx, dword [eax + 0x34]
imul ecx, dword [eax + 0x2c]
cmp ecx, 0x1388
jge 0x413ef0
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, edi
jl 0x413ef0
mov dword [esi + 0x9ec], edi
jmp 0x413f46
mov dword [esi + 0x9ec], 0xc
mov ecx, dword [0x44dd44]
call fcn.0041cad0
jmp case.0x412aac.8
mov edx, dword [0x44dd44]
cmp byte [edx + 0x34c], 0
jne case.0x412aac.8
mov dword [esi + 0x9ec], edi
mov eax, dword [0x44dd44]
mov ecx, dword [eax + 0x62144]
add dword [0x4512b0], ecx
mov edx, dword [eax + 0x62144]
mov ecx, dword [0x44dd60]
push edx
call fcn.00424960
mov ecx, esi
call fcn.00410cd0
mov dword [esi + 0x9a8], 5
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 0x85
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0x17
mov ecx, dword [0x44dd60]
call fcn.00424a00
mov dword [esi + 0x9a8], 7
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 0x81
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0x16
jmp case.0x412aac.8
mov eax, dword [0x44dd60]
cmp byte [eax + 0x37a], 0
je case.0x412aac.8
push 0
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
call fcn.0040c350
mov ecx, dword [0x44dd60]
mov edi, dword [ecx + 0x384]
call fcn.004249c0
mov edx, dword [esp + 0x68]
mov ecx, dword [0x44dd60]
push 1
push edi
push edx
call fcn.00425900
mov ecx, dword [0x44dd60]
push edi
call fcn.00424a40
cmp edi, 0x30d40
mov dword [esi + 0x9ec], ebp
jl 0x414019
mov dword [esi + 0x9c0], 7
jmp 0x41404b
cmp edi, 0x186a0
jl 0x41402d
mov dword [esi + 0x9c0], 7
jmp 0x41404b
cmp edi, 0x2710
jl 0x414041
mov dword [esi + 0x9c0], 6
jmp 0x41404b
mov dword [esi + 0x9c0], 5
mov eax, dword [esi + 0x9c0]
test eax, eax
jle 0x414075
mov ecx, dword [esi + 0x324]
push 0
push eax
call fcn.00401e20
mov eax, dword [esi + 0x9c0]
mov ecx, dword [esi + 0x324]
push eax
call fcn.00401d30
lea eax, [esi + 0x708]
mov ecx, 5
mov byte [eax], 0
add eax, 0x28
sub ecx, 1
jne 0x414080
jmp case.0x412aac.8
mov eax, dword [0x44dd60]
cmp dword [eax + 0x4d4], 0
jle 0x4140c6
cmp word [eax + 0x390], 0
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0x1e
mov ecx, dword [0x44dd60]
call fcn.00424a10
jmp case.0x412aac.8
cmp dword [esi + 0x9a4], 3
jne case.0x412aac.8
push 9
mov dword [esi + 0x9ec], 0x1d
call fcn.004242e0
add esp, 4
jmp case.0x412aac.8
mov ecx, dword [0x44dd60]
cmp word [ecx + 0x390], 0
jne 0x414177
mov eax, dword [esi + 0x9c0]
test eax, eax
jle 0x414177
mov ecx, dword [esi + 0x324]
push eax
call fcn.00401cb0
test eax, eax
je 0x414177
mov edx, dword [esi + 0x9c0]
mov ecx, dword [esi + 0x324]
push edx
call fcn.00401e70
mov ecx, dword [esi + 0x324]
sub eax, 0x50
push eax
mov eax, dword [esi + 0x9c0]
push eax
call fcn.00401e20
mov ecx, dword [esi + 0x9c0]
push ecx
mov ecx, dword [esi + 0x324]
call fcn.00401e70
cmp eax, 0xffffec78
jge 0x414177
mov edx, dword [esi + 0x9c0]
mov ecx, dword [esi + 0x324]
push edx
call fcn.00401db0
mov dword [esi + 0x9c0], 0
mov eax, dword [0x44dd60]
cmp byte [eax + 0x392], 0
jne case.0x412aac.8
mov ecx, dword [0x44dd5c]
call fcn.004198e0
test al, al
jne case.0x412aac.8
mov ecx, esi
call fcn.0040c900
push 9
mov dword [esi + 0x9ec], 0x1d
call fcn.004242e0
add esp, 4
mov byte [esp + 0x1c], 0
call fcn.00424380
cmp eax, 0x3e8
jl 0x4141cd
mov byte [esp + 0x1c], 1
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00424380
push eax
call fcn.004243e0
add esp, 8
jmp case.0x412aac.8
mov eax, dword [esi + 0x9a4]
cmp eax, 6
je 0x4141fb
cmp eax, 0x81
jne case.0x412aac.8
mov dword [esi + 0x9ec], 0x1f
jmp case.0x412aac.8
push 1
push 0x1f4
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x412aac.8
mov ecx, dword [0x44dd54]
call fcn.00423760
mov ecx, esi
call fcn.0040c8d0
or eax, 0xffffffff
mov dword [esi + 0x624], eax
mov dword [esi + 0x628], eax
mov dword [esi + 0x62c], eax
mov dword [esi + 0x630], eax
mov dword [esi + 0x634], eax
mov ecx, dword [0x44dd60]
call fcn.004249c0
xor edi, edi
mov dword [esi + 0x638], 0xffffffff
mov dword [esi + 0x5e8], edi
mov dword [esi + 0x604], edi
mov dword [esi + 0x9ec], edi
mov edx, dword [0x44dd54]
mov dword [0x4512b4], edi
cmp dword [edx + 0x620ec], edi
jg 0x41433f
call fcn.00424360
test eax, eax
jg 0x4142af
call fcn.00424370
test eax, eax
jg 0x4142af
push edi
call fcn.00424320
add esp, 4
call fcn.00424370
cmp eax, 0x7d0
jl 0x4142d3
call fcn.00424300
cmp eax, 0x3e8
jne 0x4142e9
mov dword [0x44c080], 0x7d0
jmp 0x4142e9
call fcn.00424370
cmp eax, 0x3e8
jg 0x4142e9
mov dword [0x44c080], 0x3e8
push 4
call fcn.004242e0
add esp, 4
cmp dword [esi + 0x364], 0x2710
mov dword [esi + 0x9a8], 3
jb 0x414328
call fcn.00424370
cmp eax, 0x3e8
jge 0x414328
cmp byte [esi + 0x600], 0
jne 0x414328
push edi
push 1
mov ecx, esi
call fcn.0040c1d0
mov ecx, dword [0x44dd58]
push edi
call fcn.00416ab0
push edi
call fcn.004243a0
add esp, 4
jmp 0x414349
mov dword [esi + 0x63c], 1
push 0x31
mov ecx, esi
call fcn.00402590
xor ebp, ebp
xor ebx, ebx
lea eax, [esp + 0x38]
mov byte [esi + 0x640], 1
mov byte [esi + 0x641], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
lea edi, [esi + 0x6e8]
lea edx, [ebp + 5]
lea esp, [esp]
mov eax, dword [edi - 4]
dec eax
mov ecx, 0x25
cmp eax, 0x10
ja case.0x414392.12
jmp dword [eax*4 + 0x415d2c]
mov edx, dword [edi + 4]
lea ecx, [ebx + 4]
push ecx
push edx
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x414392.12
cmp byte [0x450ed6], 0
je 0x4143dd
cmp dword [esi + 0x610], 3
je 0x4143dd
mov dword [edi - 4], 2
mov dword [edi], ebp
mov ecx, dword [esi + 0x324]
push 2
call fcn.00401d30
jmp case.0x414392.12
mov dword [edi - 4], 3
mov dword [edi], ebp
mov ecx, dword [esi + 0x324]
push 2
call fcn.00401d30
jmp case.0x414392.12
inc dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 0x4f0]
cmp eax, dword [ecx + 0x3e0]
jl 0x41440c
mov dword [edi], ebp
push 3
push 0x226
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x414392.12
cmp dword [edi - 4], 2
mov dword [edi], ebp
jne 0x414436
mov dword [edi - 4], 3
jmp case.0x414392.12
cmp byte [esi + 0x550], 0
je 0x41445a
cmp dword [esi + 0x554], ebx
jne 0x41445a
mov byte [esi + 0x558], 1
mov dword [edi - 4], 0xa
jmp 0x4147e8
mov dword [edi - 4], 9
jmp 0x4147e8
cmp byte [0x450ed6], 0
je 0x41447c
cmp dword [esi + 0x610], 3
je 0x41447c
inc dword [edi]
jmp 0x41447f
add dword [edi], 2
mov edx, dword [esi + 0x560]
mov eax, dword [edi]
cmp eax, dword [edx + 0x3e0]
jl case.0x414392.12
mov dword [edi - 4], 4
mov byte [edi + 0x21], 1
jmp 0x4147e8
mov edx, dword [edi + 4]
lea ecx, [ebx + 9]
push ecx
push edx
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x414392.12
mov dword [edi - 4], 4
mov byte [edi + 0x21], 1
mov ecx, dword [esi + 0x324]
push 3
call fcn.00401d30
jmp case.0x414392.12
cmp byte [0x450ed6], 0
je 0x4144ed
cmp dword [esi + 0x610], 3
je 0x4144ed
dec dword [edi]
jmp 0x4144f0
add dword [edi], 0xfffffffe
cmp dword [edi], ebp
jge case.0x414392.12
mov dword [edi], ebp
mov dword [edi - 4], edx
jmp case.0x414392.12
mov ecx, dword [edi + 4]
lea eax, [ebx + 9]
push eax
push ecx
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x414392.12
mov dword [edi - 4], 8
jmp case.0x414392.12
inc dword [edi]
mov edx, dword [esi + 0x548]
mov eax, dword [edi]
mov ecx, dword [esi + edx*4 + 0x574]
cmp dword [ecx + 0x3e0], eax
jg 0x414540
mov dword [edi], ebp
mov eax, dword [edi + 0xc]
inc eax
cmp eax, 0xe6
mov dword [edi + 0xc], eax
jl case.0x414392.12
cmp byte [esi + 0x551], 0
jne 0x41468f
cmp eax, 0x163
jl 0x414684
mov byte [esi + 0x558], 0
mov dword [edi + 0xc], ebp
mov dword [edi], ebp
cmp ebx, ebp
je 0x41458e
mov edx, dword [esi + 0x6fc]
mov eax, dword [esi + 0x6f8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
cmp ebx, 1
je 0x4145a7
mov ecx, dword [esi + 0x724]
mov edx, dword [esi + 0x720]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
cmp ebx, 2
je 0x4145c0
mov eax, dword [esi + 0x74c]
mov ecx, dword [esi + 0x748]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
cmp ebx, 3
je 0x4145d9
mov edx, dword [esi + 0x774]
mov eax, dword [esi + 0x770]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
cmp ebx, 4
je 0x4145f2
mov ecx, dword [esi + 0x79c]
mov edx, dword [esi + 0x798]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], edx
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.0040c2b0
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov edx, ecx
mov dword [ecx + 4], ebp
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
mov dword [edx], ebx
call fcn.0040c350
cmp dword [esp + 0x68], 1
jle 0x41466c
lea esp, [esp]
cmp ebp, 0xffffffff
je 0x41466c
lea edx, [esp + 0x28]
push edx
mov ecx, esi
call fcn.0040c2b0
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, eax
mov dword [eax + 4], ebp
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x6c]
mov dword [ecx], ebx
push eax
mov ecx, esi
call fcn.0040c350
cmp dword [esp + 0x68], 1
jg 0x414630
mov dword [edi + 0x14], ebp
mov dword [edi + 0x10], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edi - 4], 0xb
xor ebp, ebp
jmp case.0x414392.12
add eax, 0xc
mov dword [edi + 0xc], eax
jmp case.0x414392.12
cmp eax, 0xeb
jl case.0x414392.12
mov ecx, dword [esi + 0x324]
push 0xe
call fcn.00401d30
mov ecx, dword [esi + 0x530]
push ebp
push 5
mov word [ecx + 0x408], bx
mov edx, dword [esi + 0x548]
mov ecx, dword [esi + edx*4 + 0x574]
push 5
push 0x1e
call fcn.00405450
mov dword [edi + 0xc], ebp
mov byte [edi + 0x22], 1
mov dword [edi - 4], 5
jmp case.0x414392.12
cmp byte [edi + 0x22], 0
je case.0x414392.12
inc dword [edi]
mov ecx, dword [esi + 0x548]
mov eax, dword [edi]
mov edx, dword [esi + ecx*4 + 0x574]
cmp dword [edx + 0x3e0], eax
jg case.0x414392.12
mov dword [edi], ebp
jmp case.0x414392.12
cmp byte [0x450ed6], 0
je 0x414724
cmp dword [esi + 0x610], 3
je 0x414724
inc dword [edi]
jmp 0x414727
add dword [edi], 2
cmp dword [edi], 0xb
jl case.0x414392.12
lea eax, [ebx + 9]
push eax
push 0x64
mov ecx, esi
mov dword [edi], 0xb
call fcn.00402510
test eax, eax
je case.0x414392.12
mov dword [edi - 4], 9
jmp case.0x414392.12
cmp byte [0x450ed6], 0
je 0x41476d
cmp dword [esi + 0x610], 3
je 0x41476d
dec dword [edi]
jmp 0x414770
add dword [edi], 0xfffffffe
cmp dword [edi], ebp
jg case.0x414392.12
mov dword [edi], ebp
mov dword [edi - 4], 0xb
mov ecx, dword [esi + 0x324]
push 4
call fcn.00401cb0
test eax, eax
je 0x41479d
mov eax, dword [esi + 0x5b0]
cmp eax, 0xffffffff
je case.0x414392.12
cmp ebx, eax
jne case.0x414392.12
mov ecx, dword [esi + 0x324]
push 4
call fcn.00401d30
jmp case.0x414392.12
mov edx, dword [edi + 4]
lea ecx, [ebx + 9]
push ecx
push edx
mov ecx, esi
call fcn.00402510
test eax, eax
je case.0x414392.12
mov dword [edi - 4], 0x11
mov dword [edi + 0x1c], ebp
jmp case.0x414392.12
add dword [edi + 0x1c], 2
cmp dword [edi + 0x1c], ecx
jl 0x4147d7
mov dword [edi + 0x1c], ecx
inc dword [edi]
cmp dword [edi], 0xb
jl case.0x414392.12
mov dword [edi - 4], 0x13
mov dword [edi + 0x1c], ecx
mov dword [edi], 0xb
mov edx, 5
cmp dword [edi - 4], edx
je 0x4147ff
mov byte [esi + 0x640], 0
cmp dword [edi - 4], 0x13
je 0x41480c
mov byte [esi + 0x641], 0
add dword [esp + 0x18], 8
inc ebx
add edi, 0x28
cmp ebx, edx
mov dword [esp + 0x1c], ebx
jl 0x414380
xor eax, eax
mov dword [esi + 0x335], eax
mov byte [esi + 0x339], al
mov byte [esi + 0x328], al
cmp byte [esi + 0x389], al
je case.default.0x41516a
mov ecx, dword [esi + 0x50c]
cmp word [ecx + 0x408], bp
lea edi, [eax + 1]
jle 0x414871
push edi
push 0x7d0
call fcn.00402510
test eax, eax
je 0x414871
mov eax, dword [esi + 0x50c]
xor ecx, ecx
mov word [eax + 0x408], cx
cmp byte [esi + 0x53c], 0
mov ecx, dword [esi + 0x510]
push edi
jne 0x4148a2
mov edx, dword [esi + 0x508]
push edx
call fcn.00402510
test eax, eax
je 0x4148cf
add dword [esi + 0x504], 0xffffffff
jns 0x4148cf
mov dword [esi + 0x504], ebp
jmp 0x4148cf
mov eax, dword [esi + 0x508]
push eax
call fcn.00402510
test eax, eax
je 0x4148cf
add dword [esi + 0x504], edi
mov eax, dword [esi + 0x504]
cmp eax, 0x13b
jl 0x4148cf
mov dword [esi + 0x504], 0x13b
mov eax, dword [esi + 0x518]
cmp word [eax + 0x408], di
jne 0x414909
cmp byte [eax + 0x428], 0
je 0x414909
mov ecx, dword [esi + 0x324]
push 9
call fcn.00401d70
mov ecx, dword [esi + 0x518]
xor edx, edx
mov word [ecx + 0x408], dx
mov byte [esi + 0x558], dl
cmp dword [esi + 0x3a4], edi
jle 0x41492c
mov ecx, dword [esi + 0x4f0]
push ebp
push 0x3e8
call fcn.00402510
test eax, eax
je 0x41492c
dec dword [esi + 0x38c]
cmp byte [esi + 0x58c], 0
mov byte [esp + 0x16], 1
mov dword [esp + 0x20], ebp
mov byte [esp + 0x60], 0
mov byte [esp + 0x64], 0
mov dword [esp + 0x1c], 0xffffffff
jne 0x414961
call fcn.0042ad50
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x1c], edx
lea edi, [esi + 0x3f0]
mov ebx, 0xfffffff9
lea esp, [esp]
mov eax, dword [edi - 0x18]
fld qword [0x440f38]
fld dword [0x440f30]
dec eax
cmp eax, 7
ja case.default.0x414989
jmp dword [eax*4 + 0x415d70]
inc dword [edi]
fstp st(1)
mov eax, dword [edi]
fstp st(0)
mov edx, dword [esi + 0x4f0]
cmp eax, dword [edx + 0x3e0]
jl 0x4149ac
mov dword [edi], 0
mov ecx, dword [esi + 0x4f0]
lea eax, [ebp + 5]
push eax
push 0x64
call fcn.00402510
test eax, eax
je 0x414d81
dec dword [edi + 8]
cmp dword [edi + 8], 0
jg 0x414d81
push 0
push 0
push 1
push ebp
mov ecx, esi
call fcn.0040d910
jmp 0x414d81
inc dword [edi]
fstp st(1)
mov eax, dword [edi]
fstp st(0)
mov ecx, dword [esi + 0x4f0]
cmp eax, dword [ecx + 0x3e0]
jl 0x414a01
mov dword [edi], 0
cmp dword [esi + 0x3a4], 3
jle 0x414d81
mov ecx, dword [esi + 0x4f0]
lea edx, [ebp + 5]
push edx
push 0x78
call fcn.00402510
test eax, eax
je 0x414d81
dec dword [edi + 8]
cmp dword [edi + 8], 0
jg 0x414d81
cmp byte [esi + 0x53c], 0
jne 0x414ab5
cmp dword [esp + 0x1c], ebp
jne 0x414ab5
cmp dword [esi + 0x5c0], 9
jne 0x414a55
cmp dword [esi + 0x5f0], 1
je 0x414a67
call fcn.0042ad50
cdq
mov ecx, 0x145
idiv ecx
cmp edx, 0xd
jne 0x414a9c
cmp dword [esi + 0x5c0], 9
mov byte [esp + 0x60], 1
jne 0x414a7e
cmp dword [esi + 0x5f0], 1
je 0x414a90
call fcn.0042ad50
cdq
mov ecx, 0x69
idiv ecx
cmp edx, 0x17
jne 0x414a95
mov byte [esp + 0x64], 1
mov byte [esi + 0x58c], 1
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
push edx
push eax
push 0
push ebp
mov ecx, esi
call fcn.0040d910
jmp 0x414d81
push 0
push 0
push 0
push ebp
mov ecx, esi
call fcn.0040d910
jmp 0x414d81
inc dword [edi]
fstp st(1)
mov ecx, dword [esi + 0x548]
fstp st(0)
mov eax, dword [edi]
mov edx, dword [esi + ecx*4 + 0x574]
cmp dword [edx + 0x3e0], eax
jg 0x414aeb
mov dword [edi], 0
fld dword [edi + 0x14]
fadd qword [0x440f28]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esp + 0x28]
fstp dword [edi + 0x14]
fld dword [esp + 0x28]
fcom qword [0x440f20]
fnstsw ax
test ah, 1
jne 0x414d7f
cmp byte [esi + 0x551], 0
jne 0x414b5b
fld dword [0x440f1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x414b4d
fstp st(0)
mov dword [edi], 0
fld dword [0x440f18]
mov dword [edi - 0x18], 5
fstp dword [edi + 0x14]
jmp 0x414d81
fadd qword [0x440f10]
fstp dword [edi + 0x14]
jmp 0x414d81
fcomp qword [0x440f08]
fnstsw ax
test ah, 1
jne 0x414d81
mov eax, dword [esi + 0x530]
push 0
push 5
mov word [eax + 0x408], bp
mov ecx, dword [esi + 0x548]
mov ecx, dword [esi + ecx*4 + 0x574]
push 5
push 0x1e
call fcn.00405450
fld dword [0x440f00]
fstp dword [edi + 0x14]
mov dword [edi], 0
mov dword [edi - 0x18], 4
jmp 0x414d81
mov edx, dword [esi + 0x530]
fstp st(1)
cmp word [edx + 0x408], 0xffff
fstp st(0)
jne 0x414d81
mov eax, dword [esi + 0x384]
test eax, eax
jl 0x414bf6
lea eax, [eax + eax*2]
add eax, eax
mov ecx, dword [eax + eax + 0x44c134]
add eax, eax
mov dword [esi + 0x5e8], ecx
mov edx, dword [eax + 0x44c138]
mov ecx, dword [0x44dd54]
push edx
call fcn.00421aa0
mov eax, dword [esi + 0x38c]
mov ecx, dword [esi + 0x5e8]
push 1
push 1
push eax
push ecx
mov ecx, esi
call fcn.0040ec80
jmp 0x414d81
add dword [edi + 4], 2
fstp st(1)
cmp dword [edi + 4], 0x26
fstp st(0)
fld dword [edi + 0x1c]
fadd dword [edi + 0x14]
fstp dword [edi + 0x14]
fld dword [edi + 0x1c]
fsub dword [edi + 0x18]
fstp dword [edi + 0x1c]
jg 0x414d81
mov dword [edi + 4], 0x26
mov dword [edi - 0x18], 9
jmp 0x414d81
fld dword [edi + 0x1c]
mov eax, dword [edi + 8]
fadd dword [edi + 0x14]
fstp dword [edi + 0x14]
fld dword [edi + 0x1c]
fsub dword [edi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x28]
fstp dword [edi + 0x1c]
test eax, eax
jne 0x414cbc
fstp st(1)
fstp st(0)
fld dword [edi + 0x14]
fcomp qword [0x440ef8]
fnstsw ax
test ah, 1
jne 0x414d4b
fld dword [0x440ef0]
mov dword [edi + 8], 1
fstp dword [edi + 0x14]
push 0xb
fld dword [0x440eec]
fstp dword [edi + 0x1c]
fld dword [0x440ee8]
fstp dword [edi + 0x18]
mov ecx, dword [esi + 0x324]
call fcn.00401d30
jmp 0x414d4b
cmp eax, 1
jne 0x414d2d
fstp st(1)
fstp st(0)
fldz
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 5
jp 0x414d4b
fld dword [edi + 0x14]
fcomp qword [0x440ee0]
fnstsw ax
test ah, 1
jne 0x414d4b
fld dword [0x440edc]
mov dword [edi + 8], 2
fstp dword [edi + 0x14]
fld dword [0x440ed8]
fstp dword [edi + 0x1c]
fld dword [0x440ed4]
fstp dword [edi + 0x18]
jmp 0x414d4b
fld dword [edi + 0x1c]
fadd dword [edi + 0x14]
fstp dword [edi + 0x14]
fld dword [edi + 0x1c]
fsub dword [edi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [edi + 0x1c]
fcomp dword [0x440ed0]
fnstsw ax
test ah, 0x41
jp 0x414d47
fld dword [edi + 0x14]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x414d49
fstp dword [edi + 0x14]
mov dword [edi - 0x18], 7
jmp 0x414d4b
fstp st(1)
fstp st(0)
add dword [edi + 4], ebx
cmp dword [edi + 4], 0
jg 0x414d81
mov dword [edi + 4], 0
jmp 0x414d81
mov eax, dword [edi - 4]
fstp st(1)
fstp st(0)
cmp eax, 0xffffffff
je 0x414d81
cmp dword [edi - 8], eax
jne 0x414d81
cmp byte [esi + 0x390], 0
je 0x414d81
inc dword [esp + 0x20]
jmp 0x414d81
fstp st(1)
fstp st(0)
cmp dword [edi - 0x18], 7
je 0x414d8c
mov byte [esp + 0x16], 0
inc ebp
add edi, 0x38
cmp ebp, 5
jl 0x414970
cmp byte [esi + 0x3b8], 0
mov ebp, 0x63
je 0x414e7a
inc dword [esi + 0x3d0]
mov ecx, dword [esi + 0x3d4]
mov eax, dword [esi + 0x3d0]
mov edx, dword [esi + ecx*4 + 0x4f4]
cmp eax, dword [edx + 0x3e0]
jl 0x414dd6
mov dword [esi + 0x3d0], 0
mov eax, dword [esi + 0x3bc]
sub eax, 2
je 0x414e32
sub eax, 1
je 0x414e04
sub eax, 6
jne 0x414e7a
add dword [esi + 0x3c0], 0xffffffec
cmp dword [esi + 0x3c0], 0xfffffed4
jg 0x414e7a
jmp 0x414e73
mov eax, dword [esi + 0x3c8]
add dword [esi + 0x3c0], eax
cmp dword [esi + 0x3c0], 0x258
jl 0x414e7a
mov dword [esi + 0x3bc], 4
mov dword [esi + 0x3cc], 0
jmp 0x414e7a
test ecx, ecx
jne 0x414e50
mov ecx, dword [esi + 0x3c8]
sub dword [esi + 0x3c0], ecx
cmp dword [esi + 0x3c0], 0xfffffed4
jge 0x414e7a
jmp 0x414e68
mov edx, dword [esi + 0x3c8]
add dword [esi + 0x3c0], edx
cmp dword [esi + 0x3c0], 0x300
jle 0x414e7a
cmp byte [esp + 0x16], 0
je case.default.0x414fe2
mov byte [esi + 0x3b8], 0
cmp byte [esp + 0x16], 0
je case.default.0x414fe2
cmp dword [esi + 0x3e8], ebp
je 0x414eb4
mov eax, dword [esi + 0x3e8]
add eax, eax
add eax, eax
mov ecx, dword [eax + eax + 0x44b254]
mov edx, dword [eax + eax + 0x44b250]
add eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
or ecx, 0xffffffff
jmp 0x414ebf
or ecx, 0xffffffff
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ecx
cmp dword [esi + 0x420], ebp
je 0x414eea
mov eax, dword [esi + 0x420]
add eax, eax
add eax, eax
mov edx, dword [eax + eax + 0x44b254]
add eax, eax
mov eax, dword [eax + 0x44b250]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jmp 0x414ef2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ecx
cmp dword [esi + 0x458], ebp
je 0x414f1d
mov eax, dword [esi + 0x458]
add eax, eax
add eax, eax
mov edx, dword [eax + eax + 0x44b254]
add eax, eax
mov eax, dword [eax + 0x44b250]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
jmp 0x414f25
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
cmp dword [esi + 0x490], ebp
je 0x414f50
mov eax, dword [esi + 0x490]
add eax, eax
add eax, eax
mov edx, dword [eax + eax + 0x44b254]
add eax, eax
mov eax, dword [eax + 0x44b250]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
jmp 0x414f58
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
cmp dword [esi + 0x4c8], ebp
je 0x414f80
mov eax, dword [esi + 0x4c8]
add eax, eax
add eax, eax
mov edx, dword [eax + eax + 0x44b250]
mov ecx, dword [eax + eax + 0x44b254]
add eax, eax
mov dword [esp + 0x58], edx
jmp 0x414f84
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
call fcn.0040c350
mov edi, dword [esp + 0x68]
cmp edi, 9
jl case.default.0x414fe2
cmp byte [esi + 0x390], 0
mov dword [esp + 0x20], 5
jne case.default.0x414fe2
mov ecx, dword [0x44dd54]
push 1
call fcn.00421aa0
lea eax, [edi - 9]
mov byte [esi + 0x390], 1
mov byte [esi + 0x391], 1
cmp eax, 8
ja case.default.0x414fe2
jmp dword [eax*4 + 0x415d90]
mov dword [esi + 0x384], 0
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x415154
mov dword [esi + 0x384], 7
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, ecx
mov dword [esi + 0x394], ecx
jmp case.default.0x414fe2
mov dword [esi + 0x384], 0xe
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov dword [esi + 0x394], edx
jmp case.default.0x414fe2
mov dword [esi + 0x384], 0x15
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
jmp 0x415154
mov dword [esi + 0x384], 0x1c
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov dword [esi + 0x394], ecx
jmp case.default.0x414fe2
mov dword [esi + 0x384], 0x23
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
mov dword [esi + 0x394], edx
jmp case.default.0x414fe2
mov dword [esi + 0x384], 0x2a
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, ecx
mov dword [esi + 0x394], ecx
jmp case.default.0x414fe2
mov dword [esi + 0x384], 0x31
call fcn.00424300
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x32
mov dword [esi + 0x394], eax
mov eax, dword [esi + 0x3a4]
dec eax
cmp eax, 7
ja case.default.0x41516a
jmp dword [eax*4 + 0x415db4]
mov ecx, dword [0x44dd54]
cmp byte [ecx + 0x62125], 0
je case.default.0x41516a
cmp dword [esi + 0x5c0], 0
je 0x415240
cmp byte [esi + 0x58d], 0
jne 0x415240
mov byte [esi + 0x58d], 1
xor edi, edi
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jg 0x4151f9
call fcn.0042ad50
mov edi, eax
and edi, 0x80000001
jns 0x4151cd
dec edi
or edi, 0xfffffffe
inc edi
cmp dword [esi + 0x384], 0
jl 0x415202
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x50
jg 0x4151f9
call fcn.0042ad50
cdq
mov ecx, 3
idiv ecx
lea edi, [edi + edx + 1]
cmp dword [esi + 0x384], 0
jge 0x415214
call fcn.0042ad50
cdq
mov ecx, 0x96
idiv ecx
cmp edx, 0xa
jge 0x41521f
inc edi
cmp edi, 4
jle 0x41521f
mov edi, 4
mov ecx, dword [0x44dd58]
call fcn.00416420
test al, al
jne 0x415233
cmp edi, 5
jne 0x415240
mov ecx, dword [esi + 0x324]
push 0x11
call fcn.00401d30
mov ecx, esi
mov dword [esi + 0x3a4], 2
call fcn.0040c940
mov ecx, dword [0x44dd54]
push 0xffffffffffffffff
push 0
call fcn.00421b00
mov ecx, dword [0x44dd60]
call fcn.004249c0
mov edx, dword [esi + 0x50c]
mov eax, 1
mov word [edx + 0x408], ax
mov ecx, dword [esi + 0x398]
push eax
push ecx
mov ecx, esi
call fcn.0040e4a0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x3a4], 3
xor edi, edi
lea ebp, [esi + 0x3f0]
jmp 0x4152b0
lea edx, [edi + edi]
lea eax, [edi + 5]
mov dword [ebp], edx
mov ecx, dword [esi + 0x4f0]
push eax
call fcn.004024e0
inc edi
add ebp, 0x38
cmp edi, 5
jl 0x4152b0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov bl, 1
xor ebp, ebp
lea edi, [esi + 0x3f0]
lea ecx, [ebp + 0xa]
push ecx
mov ecx, dword [esi + 0x4f0]
push 0x78
call fcn.00402510
test eax, eax
je 0x415312
dec dword [edi]
cmp dword [edi], 0
jg 0x415312
mov dword [edi], 0
mov dword [edi - 0x18], 1
mov dword [edi + 8], 0xa
cmp dword [edi - 0x18], 1
je 0x41531a
xor bl, bl
inc ebp
add edi, 0x38
cmp ebp, 5
jl 0x4152e2
test bl, bl
je case.default.0x41516a
mov dword [esi + 0x3a4], 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x4f0]
push 1
push 0x578
mov byte [esp + 0x1f], 0
call fcn.00402510
test eax, eax
je 0x4153bb
mov eax, dword [esi + 0x38c]
cmp eax, 0xa
mov edi, 0x96
jge 0x415371
mov edi, 0xf
jmp 0x415393
cmp eax, 0x19
jge 0x41537d
mov edi, 0x32
jmp 0x415393
cmp eax, 0x28
jge 0x415389
mov edi, 0x5a
jmp 0x415393
cmp eax, 0x3c
jge 0x415393
mov edi, 0x7d
cmp byte [esi + 0x390], 0
mov ebx, 5
je 0x4153c0
cmp eax, ebx
jle 0x4153b2
call fcn.0042ad50
cdq
idiv edi
cmp edx, 7
jne 0x4153c0
mov byte [esi + 0x3ac], 1
jmp 0x4153c0
mov ebx, 5
mov cl, byte [esi + 0x53c]
xor ebp, ebp
test cl, cl
jne 0x4153d4
cmp dword [esi + 0x504], ebp
jmp 0x4153da
cmp dword [esi + 0x38c], ebp
jg 0x4153e5
cmp byte [esi + 0x3ac], 0
je 0x4153eb
cmp dword [esp + 0x20], ebx
jl 0x4153f0
mov byte [esp + 0x17], 1
mov eax, dword [esi + 0x3a8]
cmp eax, 0xc
ja case.0x4153ff.2
jmp dword [eax*4 + 0x415dd4]
cmp byte [esp + 0x16], 0
je case.0x4153ff.2
jmp 0x415b1b
mov eax, 0x3e8
test cl, cl
je 0x415424
mov eax, 0x6a4
mov ecx, dword [esi + 0x4f0]
push 3
push eax
call fcn.00402510
test eax, eax
je case.0x4153ff.2
cmp byte [esi + 0x390], 0
jne 0x4154b2
cmp dword [esi + 0x5c0], 9
jne 0x4154b2
cmp dword [esi + 0x5f0], 1
jne 0x4154b2
mov eax, dword [esi + 0x384]
cmp eax, ebp
mov byte [esi + 0x390], 1
mov byte [esi + 0x3ac], 1
jl 0x4154a2
lea eax, [eax + eax*2]
add eax, eax
mov edx, dword [eax + eax + 0x44c134]
add eax, eax
mov dword [esi + 0x5e8], edx
mov eax, dword [eax + 0x44c138]
mov ecx, dword [0x44dd54]
push eax
call fcn.00421aa0
mov ecx, dword [esi + 0x5e8]
push ebp
push ecx
mov ecx, esi
call fcn.0040e4a0
mov dword [esi + 0x5c0], 0xa
mov dword [esi + 0x5dc], ebp
mov ecx, esi
call fcn.00411a50
push ebp
mov ecx, esi
call fcn.00411620
cmp dword [esi + 0x5c0], ebp
jle 0x4154e2
dec dword [esi + 0x5dc]
call fcn.00424300
cmp eax, 0x7d0
jne 0x4154e2
add dword [esi + 0x5dc], 0xfffffffd
push 1
mov ecx, esi
call fcn.00412290
cmp byte [esp + 0x16], 0
je case.0x4153ff.2
cmp byte [esi + 0x53c], 0
je 0x41550e
mov dword [esi + 0x3a8], 0xa
jmp case.0x4153ff.2
mov byte [esi + 0x58c], 0
call fcn.0042ad50
and eax, 0x80000003
jns 0x415526
dec eax
or eax, 0xfffffffc
inc eax
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0040d800
mov dword [esi + 0x3a8], 9
cmp dword [esi + 0x3d4], ebp
jne 0x41555f
call fcn.0042ad50
and eax, 0x80000003
jns 0x415553
dec eax
or eax, 0xfffffffc
inc eax
inc eax
mov dword [esi + 0x3b4], eax
jmp case.0x4153ff.2
call fcn.0042ad50
and eax, 0x80000003
jns 0x415570
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esi + 0x3b4], eax
jmp case.0x4153ff.2
mov edi, 1
mov dword [esi + 0x3a8], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], 3
mov dword [esp + 0x44], 4
mov dword [esp + 0x48], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
call fcn.0042ad50
call fcn.0042ad50
cdq
mov ecx, ebx
idiv ecx
add edx, ebx
mov dword [esp + 0x18], edx
call fcn.0042ad50
cdq
mov ecx, 3
idiv ecx
mov ebp, edx
sub ebp, edi
cmp byte [esi + 0x3ac], 0
je case.default.0x415601
call fcn.0042ad50
cdq
mov ecx, 3
idiv ecx
mov eax, dword [esi + 0x398]
add eax, 0xfffffff7
mov dword [esp + 0x18], ebx
mov ebp, edx
add ebp, 0xa
cmp eax, 8
ja case.default.0x415601
jmp dword [eax*4 + 0x415e08]
mov dword [esp + 0x18], ebx
jmp case.default.0x415601
mov dword [esp + 0x18], 6
jmp case.default.0x415601
mov dword [esp + 0x18], 7
jmp case.default.0x415601
mov dword [esp + 0x18], 8
xor ebx, ebx
call fcn.0042ad50
cdq
mov ecx, 5
idiv ecx
mov edi, edx
mov dword [esi + 0x3b4], edi
lea eax, [ebp + 1]
cmp eax, 0xd
ja case.0x415654.2
movzx edx, byte [ebp + 0x415e3d]
jmp dword [edx*4 + 0x415e2c]
cmp ebp, 0xa
mov eax, dword [esp + 0x18]
jl 0x415669
mov eax, 3
push ebx
push 1
push ebp
push eax
push edi
mov ecx, esi
call fcn.0040dbd0
jmp case.0x415654.2
call fcn.0042ad50
cdq
idiv dword [esp + 0x1c]
cmp ebp, 0xa
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], edx
jl 0x415694
mov eax, 3
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + ecx*4 + 0x38]
push ebx
push 1
push edx
push eax
push edi
mov ecx, esi
call fcn.0040dbd0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + eax*4 + 0x38]
mov dword [esp + ecx*4 + 0x38], eax
jmp case.0x415654.2
cmp ebp, 0xa
mov eax, dword [esp + 0x18]
jl 0x4156ce
mov eax, 3
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + edx*4 + 0x38]
push ebx
push 1
push ecx
push eax
push edi
mov ecx, esi
call fcn.0040dbd0
cmp edi, 1
je 0x4156ed
cmp edi, 2
jne case.0x415654.2
inc dword [esp + 0x20]
inc edi
cmp edi, 5
jl 0x4156f9
xor edi, edi
inc ebx
cmp ebx, 5
jl 0x415641
jmp case.0x4153ff.2
cmp byte [esi + 0x3b8], 0
je 0x415b1b
mov edi, 2
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x19
jge 0x41572e
xor edi, edi
cmp byte [esi + 0x3ac], 0
jne 0x415752
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jge 0x415757
cmp byte [esi + 0x390], 0
je 0x415757
mov edi, 3
mov edx, dword [0x44dd58]
mov ebp, dword [edx + 0x16a8]
xor bl, bl
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x4157b6
cmp byte [esi + 0x5bc], bl
jne 0x415790
call fcn.0042ad50
cdq
mov ecx, 0x96
idiv ecx
cmp edx, 0xa
jge 0x4157b6
cmp dword [esi + 0x5c0], 8
mov ebp, 2
jne 0x4157a3
mov ebp, 0x64
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, ebp
jge 0x4157b6
mov bl, 1
cmp dword [esi + 0x3d4], 0
mov eax, dword [esi + 0x3c0]
jne 0x415930
cmp eax, 0xffffff38
jle case.0x4153ff.2
cmp eax, 0xffffffe7
jge 0x415822
cmp byte [esi + 0x3ac], 0
jne 0x415804
call fcn.0042ad50
and eax, 0x80000001
jns 0x4157f3
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4157ff
cmp edi, 2
mov edi, 1
je 0x415804
mov edi, 2
test bl, bl
je 0x41580d
mov edi, 4
push 0
push 0
push 1
push edi
push 0
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x50
jge 0x415872
cmp byte [esi + 0x3ac], 0
jne 0x415848
call fcn.0042ad50
and eax, 0x80000001
jns 0x415841
dec eax
or eax, 0xfffffffe
inc eax
jne 0x415848
mov edi, 1
test bl, bl
je 0x41585d
mov edi, dword [esi + 0x3b4]
dec edi
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 1
push edi
push 1
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0xdc
jge 0x4158c6
cmp byte [esi + 0x3ac], 0
jne 0x41589a
call fcn.0042ad50
and eax, 0x80000001
jns 0x415893
dec eax
or eax, 0xfffffffe
inc eax
jne 0x41589a
mov edi, 1
test bl, bl
je 0x4158b1
mov edi, dword [esi + 0x3b4]
sub edi, 2
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 1
push edi
push 2
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x168
jge 0x4158f9
test bl, bl
je 0x4158e4
mov edi, dword [esi + 0x3b4]
sub edi, 3
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 1
push edi
push 3
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x1f4
jge case.0x4153ff.2
test bl, bl
je 0x41591b
mov edi, dword [esi + 0x3b4]
sub edi, 4
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 1
push edi
push 4
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x300
jge case.0x4153ff.2
cmp eax, 0x24e
jle 0x415960
test bl, bl
je 0x41594b
mov edi, 4
push 0
push 0
push 0
push edi
push 4
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x1c2
jle 0x415993
test bl, bl
je 0x41597e
mov edi, dword [esi + 0x3b4]
sub edi, 3
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 0
push edi
push 3
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x122
jle 0x4159e7
cmp byte [esi + 0x3ac], 0
jne 0x4159bb
call fcn.0042ad50
and eax, 0x80000001
jns 0x4159b4
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4159bb
mov edi, 1
test bl, bl
je 0x4159d2
mov edi, dword [esi + 0x3b4]
sub edi, 2
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 0
push edi
push 2
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0x96
jle 0x415a39
cmp byte [esi + 0x3ac], 0
jne 0x415a0f
call fcn.0042ad50
and eax, 0x80000001
jns 0x415a08
dec eax
or eax, 0xfffffffe
inc eax
jne 0x415a0f
mov edi, 1
test bl, bl
je 0x415a24
mov edi, dword [esi + 0x3b4]
dec edi
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 0
push edi
push 1
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp eax, 0xa
jle case.0x4153ff.2
cmp byte [esi + 0x3ac], 0
jne 0x415a6d
call fcn.0042ad50
and eax, 0x80000001
jns 0x415a5c
dec eax
or eax, 0xfffffffe
inc eax
jne 0x415a68
cmp edi, 2
mov edi, 1
je 0x415a6d
mov edi, 2
test bl, bl
je 0x415a81
mov edi, dword [esi + 0x3b4]
neg edi
sbb edi, edi
and edi, 6
add edi, 4
push 0
push 0
push 0
push edi
push 0
mov ecx, esi
call fcn.0040dbd0
jmp case.0x4153ff.2
cmp dword [esi + 0x3bc], 7
je 0x415aa8
cmp byte [esi + 0x3b8], 0
jne case.0x4153ff.2
call fcn.0042ad50
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x28
jge 0x415ac6
mov dword [esi + 0x3a8], 0xb
jmp case.0x4153ff.2
mov dword [esi + 0x3a8], 0xc
mov dword [esi + 0x3bc], 9
mov dword [esi + 0x3cc], ebp
jmp case.0x4153ff.2
push 1
mov ecx, esi
call fcn.00412290
mov dword [esi + 0x3a8], 9
call fcn.0042ad50
and eax, 0x80000003
jns 0x415b06
dec eax
or eax, 0xfffffffc
inc eax
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0040d800
jmp case.0x4153ff.2
cmp byte [esi + 0x3b8], 0
jne case.0x4153ff.2
mov dword [esi + 0x3a8], 1
cmp byte [esp + 0x17], 0
je case.default.0x41516a
mov dword [esi + 0x3a4], 5
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x16], 0
je case.default.0x41516a
mov ecx, dword [esi + 0x4f0]
push 2
push 0xbb8
call fcn.00402510
test eax, eax
je case.default.0x41516a
xor edi, edi
jmp 0x415b70
push edi
mov ecx, esi
call fcn.0040d8b0
inc edi
cmp edi, 5
jl 0x415b70
mov dword [esi + 0x3a4], 6
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x390], 0
je 0x415c09
mov edx, 5
mov dword [esi + 0x3a4], 7
lea eax, [esi + 0x6f8]
lea ecx, [esi + 0x3e8]
xor edi, edi
lea ebx, [edx + 6]
mov ebp, dword [ecx]
mov dword [ecx + 0xc], 0x26
mov ebp, dword [ebp*8 + 0x44b254]
mov dword [eax + 4], ebp
mov ebp, dword [ecx]
mov ebp, dword [ebp*8 + 0x44b250]
mov dword [eax], ebp
mov dword [eax - 0x14], ebx
mov dword [eax - 0x10], edi
mov dword [eax - 4], edi
add ecx, 0x38
add eax, 0x28
sub edx, 1
jne 0x415bbb
mov edx, dword [esi + 0x50c]
mov eax, 0x64
mov word [edx + 0x408], ax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x50c]
mov dword [esi + 0x3a4], 8
mov word [ecx + 0x408], bp
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esi + 0x3f4]
mov eax, edx
mov ecx, 5
add dword [eax], 0xfffffffd
cmp dword [eax], 0
jg 0x415c45
mov dword [eax], 0
add eax, 0x38
sub ecx, 1
jne 0x415c37
cmp dword [edx], ecx
jg case.default.0x41516a
mov dword [esi + 0x3a4], 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 5
lea eax, [esi + 0x6f4]
mov ecx, edx
mov dword [eax - 0x10], edx
mov dword [eax], 0
add eax, 0x28
sub ecx, 1
jne 0x415c72
mov byte [esi + 0x389], cl
cmp byte [esi + 0x53c], cl
je case.default.0x41516a
mov ecx, dword [esi + 0x324]
push 9
call fcn.00401db0
mov byte [esi + 0x53c], 0
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret