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

Disassembly:
sub esp, 0x158
push ebx
push ebp
push esi
mov esi, dword [0x460020]
push edi
mov edi, eax
mov dword [esp + 0x28], esi
call fcn.004108d0
lea eax, [esp + 0x90]
mov edx, 2
or esi, 0xffffffff
lea ebx, [ebx]
mov ecx, 5
mov dword [eax + 4], esi
mov dword [eax], esi
add eax, 8
sub ecx, 1
jne 0x410965
sub edx, 1
jne 0x410960
or eax, 0xffffffff
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
xor eax, eax
cmp dword [esp + 0x16c], 0x11
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x3b], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], 4
mov dword [eax + 0xae4], edi
lea ebx, [ecx + 7]
lea ebp, [ecx + 6]
ja case.default.0x41196f
mov ecx, dword [esp + 0x16c]
movzx edx, byte [ecx + 0x4121d8]
jmp dword [edx*4 + 0x4121b4]
push 0x34
xor ebp, ebp
lea eax, [esp + 0x128]
push ebp
push eax
mov byte [esp + 0x1f], 0
call fcn.0043c670
add esp, 0xc
cmp edi, 0xffffffff
jne 0x410f30
call fcn.0043bcb0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jge 0x410d4b
call fcn.0043bcb0
mov edi, eax
and edi, 0x80000007
jns 0x410ac1
dec edi
or edi, 0xfffffff8
inc edi
call fcn.0043bcb0
mov esi, eax
and esi, 0x80000003
jns 0x410ad5
dec esi
or esi, 0xfffffffc
inc esi
mov dword [esp + 0x14], ebp
mov ebp, 4
mov ebx, 5
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], ebp
nop
call fcn.0043bcb0
cdq
idiv ebx
mov eax, dword [esp + edx*4 + 0x14]
add eax, eax
add eax, eax
add eax, eax
dec ebx
mov dword [esp + eax + 0x94], edi
mov dword [esp + eax + 0x90], esi
inc edi
lea ecx, [esp + edx*4 + 0x14]
mov edx, dword [esp + ebx*4 + 0x14]
mov dword [ecx], edx
call fcn.0043bcb0
and eax, 0x80000001
jns 0x410b3d
dec eax
or eax, 0xfffffffe
inc eax
lea esi, [esi + eax + 1]
cmp esi, 4
jl 0x410b48
xor esi, esi
sub ebp, 1
jne 0x410b00
mov ebx, dword [esp + 0x14]
add ebx, ebx
add ebx, ebx
add ebx, ebx
call fcn.0043bcb0
cmp edi, 8
jl 0x410b72
cdq
mov ecx, 3
idiv ecx
mov dword [esp + ebx + 0x94], edx
jmp 0x410b88
and eax, 0x80000003
jns 0x410b7e
dec eax
or eax, 0xfffffffc
inc eax
add eax, 9
mov dword [esp + ebx + 0x94], eax
mov dword [esp + ebx + 0x90], esi
call fcn.0043bcb0
and eax, 0x80000001
jns 0x410ba0
dec eax
or eax, 0xfffffffe
inc eax
lea esi, [esi + eax + 1]
cmp esi, 4
jl 0x410bab
xor esi, esi
call fcn.0043bcb0
cmp edi, 8
jl 0x410bc6
cdq
mov ecx, 3
idiv ecx
mov dword [esp + 0xbc], edx
jmp 0x410bdc
and eax, 0x80000003
jns 0x410bd2
dec eax
or eax, 0xfffffffc
inc eax
add eax, 9
mov dword [esp + 0xbc], eax
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xb8], esi
lea ebx, [esp + 0xc0]
mov dword [esp + 0x48], 4
jmp 0x410c00
mov eax, dword [ebp + 0xae8]
or esi, 0xffffffff
or edi, esi
test eax, eax
jle 0x410c46
cmp eax, 0x34
jg 0x410c46
mov esi, eax
call fcn.0043bcb0
cdq
idiv esi
mov eax, dword [ebp + 0x810]
lea ecx, [esi - 1]
mov dword [ebp + 0xae8], ecx
mov ebp, dword [eax + ecx*8]
mov esi, dword [eax + edx*8]
mov edi, dword [eax + edx*8 + 4]
mov dword [eax + edx*8], ebp
mov ecx, dword [eax + ecx*8 + 4]
mov ebp, dword [esp + 0x28]
mov dword [eax + edx*8 + 4], ecx
mov dword [ebx], esi
mov dword [ebx + 4], edi
add ebx, 8
sub dword [esp + 0x48], 1
jne 0x410c00
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x98]
lea ecx, [ebx + 0x81c]
mov edx, 2
jmp 0x410c70
mov esi, dword [eax - 8]
mov dword [ecx - 8], esi
mov esi, dword [eax - 4]
mov dword [ecx - 4], esi
mov esi, dword [eax]
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [eax + 8]
mov dword [ecx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [ecx + 0xc], esi
mov esi, dword [eax + 0x10]
mov dword [ecx + 0x10], esi
mov esi, dword [eax + 0x14]
mov dword [ecx + 0x14], esi
mov esi, dword [eax + 0x18]
mov dword [ecx + 0x18], esi
mov esi, dword [eax + 0x1c]
mov dword [ecx + 0x1c], esi
add eax, 0x28
add ecx, 0x28
sub edx, 1
jne 0x410c70
lea ecx, [ebx + 0x814]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
cmp dword [ecx + 4], 0
jl 0x410cce
cmp dword [ecx], 0
jge 0x410d27
cmp dword [esp + 0x16c], 0xe
jl 0x412145
mov eax, dword [ebx + 0xae8]
or esi, 0xffffffff
or edi, esi
test eax, eax
jle 0x410d22
cmp eax, 0x34
jg 0x410d22
mov esi, eax
call fcn.0043bcb0
cdq
idiv esi
mov eax, dword [ebx + 0x810]
lea ecx, [esi - 1]
mov dword [ebx + 0xae8], ecx
mov ebp, dword [eax + ecx*8]
mov esi, dword [eax + edx*8]
mov edi, dword [eax + edx*8 + 4]
mov dword [eax + edx*8], ebp
mov ecx, dword [eax + ecx*8 + 4]
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov eax, dword [esp + 0x40]
inc eax
add ecx, 8
cmp eax, 0xa
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
jl 0x410cc3
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret 4
mov ebx, dword [esp + 0x28]
xor edi, edi
mov eax, dword [ebx + 0xae8]
or esi, 0xffffffff
mov dword [esp + 0x30], esi
test eax, eax
jle 0x410d9d
cmp eax, 0x34
jg 0x410d9d
mov esi, eax
call fcn.0043bcb0
cdq
idiv esi
mov eax, dword [ebx + 0x810]
lea ecx, [esi - 1]
mov dword [ebx + 0xae8], ecx
mov ebx, dword [eax + ecx*8]
mov esi, dword [eax + edx*8]
mov dword [esp + 0x30], esi
mov esi, dword [eax + edx*8 + 4]
mov dword [eax + edx*8], ebx
mov ecx, dword [eax + ecx*8 + 4]
mov ebx, dword [esp + 0x28]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [esp + 0x30]
cmp dword [esp + eax*4 + 0x78], 3
lea eax, [esp + eax*4 + 0x78]
mov dword [esp + 0x44], eax
jge 0x410ea8
mov edx, dword [esp + esi*4 + 0xf0]
cmp edx, 2
lea eax, [esp + esi*4 + 0xf0]
mov dword [esp + 0x40], eax
jge 0x410ea8
cmp edx, 1
jne 0x410deb
test ebp, ebp
je 0x410ea8
cmp edx, edx
jne 0x410deb
cmp esi, 8
jg 0x410ea8
cmp edx, edx
jl 0x410df8
cmp byte [esp + 0x13], 0
jne 0x410ea8
cmp edx, 1
jne 0x410e23
cmp edi, 5
jl 0x410e23
xor eax, eax
test edi, edi
jl 0x410e23
lea ecx, [ebp + ebp*4]
lea ecx, [esp + ecx*8 + 0x94]
cmp dword [ecx], esi
je 0x410ea8
inc eax
add ecx, 8
cmp eax, edi
jle 0x410e13
mov ecx, 1
xor eax, eax
lea ebx, [ebx]
test eax, eax
jle 0x410e55
cmp dword [esp + eax*4 + 0x120], 1
jl 0x410f0e
cmp dword [esp + eax*4 + 0x124], 1
jge 0x410e54
cmp esi, eax
jne 0x410f0e
inc ecx
cmp ecx, 3
jge 0x410ea8
inc eax
cmp eax, 0xd
jl 0x410e30
mov ecx, dword [esp + 0x30]
inc dword [esp + esi*4 + 0x124]
lea eax, [edi + ebp*4]
add eax, ebp
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + eax + 0x90], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + eax + 0x94], esi
lea eax, [esp + esi*4 + 0x124]
lea eax, [edx + 1]
mov edx, dword [esp + 0x40]
mov dword [edx], eax
mov edx, dword [ecx]
inc edx
inc edi
cmp eax, 2
mov dword [ecx], edx
jl 0x410ea8
mov byte [esp + 0x13], 1
cmp edi, 5
jge 0x410f21
cmp dword [ebx + 0xae8], 5
jg 0x410d51
push 0x34
xor edi, edi
lea eax, [esp + 0xf4]
push edi
push eax
xor ebp, ebp
call fcn.0043c670
xor eax, eax
add esp, 0xc
push 0x34
push eax
lea ecx, [esp + 0x12c]
push ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
call fcn.0043c670
add esp, 0xc
mov esi, ebx
call fcn.004108d0
jmp 0x410d51
cmp ecx, 5
jge 0x410e55
mov ecx, 1
jmp 0x410e5a
inc ebp
cmp ebp, 2
jl 0x410d4b
jmp 0x410c55
mov edx, dword [esp + 0x28]
mov eax, edi
sub eax, ebp
mov dword [edx + 0xae4], ebp
je 0x4111e7
sub eax, 1
je 0x411075
sub eax, 1
jne 0x410c55
call fcn.0043bcb0
cdq
mov ecx, 9
idiv ecx
mov ebx, edx
call fcn.0043bcb0
mov esi, eax
and esi, 0x80000003
jns 0x410f79
dec esi
or esi, 0xfffffffc
inc esi
mov dword [esp + 0x14], ebp
mov ebp, 4
mov edi, 5
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], ebp
call fcn.0043bcb0
cdq
idiv edi
mov eax, dword [esp + edx*4 + 0x14]
add eax, eax
add eax, eax
add eax, eax
dec edi
mov dword [esp + eax + 0x94], ebx
inc ebx
sub ebp, 1
mov dword [esp + eax + 0x90], esi
lea ecx, [esp + edx*4 + 0x14]
mov edx, dword [esp + edi*4 + 0x14]
mov dword [ecx], edx
jne 0x410fa3
inc esi
cmp esi, 4
jl 0x410fdc
xor esi, esi
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
lea ebx, [ebx + edx + 2]
cmp ebx, 0xd
jl 0x410ff5
sub ebx, 0xd
mov eax, dword [esp + 0x14]
mov dword [esp + eax*8 + 0x94], ebx
mov dword [esp + eax*8 + 0x90], esi
inc esi
cmp esi, 4
jl 0x41100f
xor esi, esi
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
lea eax, [ebx + edx + 2]
cmp eax, 0xd
jl 0x411028
sub eax, 0xd
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], esi
lea edi, [esp + 0xc0]
mov ebx, 4
jmp 0x411050
lea esi, [esp + 0xe8]
mov eax, ebp
call fcn.004106e0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi], edx
mov dword [edi + 4], eax
add edi, 8
sub ebx, 1
jne 0x411050
jmp 0x410c55
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov ebx, edx
call fcn.0043bcb0
mov esi, eax
and esi, 0x80000003
jns 0x411098
dec esi
or esi, 0xfffffffc
inc esi
mov dword [esp + 0x14], ebp
mov ebp, 3
mov edi, 5
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 4
call fcn.0043bcb0
cdq
idiv edi
mov eax, dword [esp + edx*4 + 0x14]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + eax + 0x94], ebx
dec edi
mov dword [esp + eax + 0x90], esi
inc esi
cmp esi, 4
lea ecx, [esp + edx*4 + 0x14]
mov edx, dword [esp + edi*4 + 0x14]
mov dword [ecx], edx
jl 0x4110f5
xor esi, esi
sub ebp, 1
jne 0x4110c2
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
lea edi, [ebx + edx + 1]
cmp edi, 0xd
jl 0x411113
sub edi, 0xd
inc esi
cmp esi, 4
jl 0x41111b
xor esi, esi
mov eax, dword [esp + 0x14]
mov dword [esp + eax*8 + 0x94], edi
mov dword [esp + eax*8 + 0x90], esi
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
lea eax, [edi + edx + 1]
cmp eax, 0xd
jl 0x411146
sub eax, 0xd
inc esi
cmp esi, 4
jl 0x41114e
xor esi, esi
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0x94], eax
mov dword [esp + ecx*8 + 0x90], esi
inc esi
cmp esi, 4
jl 0x411168
xor esi, esi
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov edi, edx
mov dword [esp + 0xbc], edi
cmp ebx, edi
je 0x411168
mov dword [esp + 0xb8], esi
inc esi
cmp esi, 4
jl 0x411191
xor esi, esi
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov dword [esp + 0xc4], edx
cmp ebx, edx
je 0x411191
cmp edi, edx
je 0x411191
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xc0], esi
lea edi, [esp + 0xc8]
lea ebx, [ecx - 0xa]
lea esi, [esp + 0xe0]
mov eax, ebp
call fcn.004106e0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi], edx
mov dword [edi + 4], eax
add edi, 8
sub ebx, 1
jne 0x4111c2
jmp 0x410c55
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
mov esi, edx
call fcn.0043bcb0
mov ebx, eax
and ebx, 0x80000003
jns 0x41120a
dec ebx
or ebx, 0xfffffffc
inc ebx
mov dword [esp + 0x14], ebp
mov ebp, 4
mov edi, 5
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], ebp
call fcn.0043bcb0
cdq
idiv edi
mov eax, dword [esp + edx*4 + 0x14]
add eax, eax
add eax, eax
add eax, eax
dec edi
mov dword [esp + eax + 0x94], esi
mov dword [esp + eax + 0x90], ebx
lea ecx, [esp + edx*4 + 0x14]
mov edx, dword [esp + edi*4 + 0x14]
mov dword [ecx], edx
call fcn.0043bcb0
and eax, 0x80000001
jns 0x411270
dec eax
or eax, 0xfffffffe
inc eax
sub ebp, 1
lea esi, [esi + eax + 1]
jne 0x411234
call fcn.0043bcb0
and eax, 0x80000001
jns 0x41128a
dec eax
or eax, 0xfffffffe
inc eax
lea edi, [ebx + eax + 1]
cmp edi, 4
jl 0x411296
sub edi, 4
mov eax, dword [esp + 0x14]
mov dword [esp + eax*8 + 0x94], esi
mov dword [esp + eax*8 + 0x90], edi
inc edi
cmp edi, 4
jl 0x4112b0
xor edi, edi
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xb8], edi
lea edi, [esp + 0xc0]
lea ebx, [ecx - 9]
mov dword [esp + 0xbc], edx
lea esp, [esp]
lea esi, [esp + 0x88]
mov eax, ebp
call fcn.004106e0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi], edx
mov dword [edi + 4], eax
add edi, 8
sub ebx, 1
jne 0x4112e0
jmp 0x410c55
call fcn.0043bcb0
and eax, 0x80000003
jns 0x411316
dec eax
or eax, 0xfffffffc
inc eax
add eax, 9
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x2c], 2
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov edi, dword [esp + 0x28]
mov esi, edx
mov dword [esp + 0x14], esi
call fcn.0043bcb0
cdq
mov ecx, ebx
idiv ecx
cmp byte [edi + 0xaf4], 0
mov dword [esp + 0x18], edx
je 0x411368
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x18], edx
cmp esi, edx
je 0x411340
cmp edx, 5
jl case.default.0x41196f
mov byte [esp + 0x3b], 1
jmp case.default.0x41196f
mov dword [esp + 0x2c], 4
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov edi, dword [esp + 0x28]
cmp byte [edi + 0xaf4], 0
mov esi, edx
je 0x4113ba
call fcn.0043bcb0
mov esi, eax
and esi, 0x80000003
jns 0x4113b7
dec esi
or esi, 0xfffffffc
inc esi
add esi, 9
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], esi
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
cmp byte [edi + 0xaf4], 0
mov eax, edx
je 0x4113ee
call fcn.0043bcb0
and eax, 0x80000003
jns 0x4113eb
dec eax
or eax, 0xfffffffc
inc eax
add eax, 9
cmp eax, esi
je 0x4113c2
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
xor bl, bl
mov dword [esp + 0x14], edx
call fcn.0043bcb0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x3c
jge 0x411429
cmp byte [edi + 0xaf4], bl
jne 0x411429
mov bl, 1
mov esi, 1
mov edi, edi
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je 0x411467
cmp esi, 1
jle 0x411467
cmp byte [edi + 0xaf4], 0
jne 0x411467
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, 5
mov dword [esp + esi*4 + 0x14], edx
xor eax, eax
test esi, esi
jle 0x41147c
mov ecx, dword [esp + esi*4 + 0x14]
cmp ecx, dword [esp + eax*4 + 0x14]
je 0x411430
inc eax
cmp eax, esi
jl 0x411471
inc esi
cmp esi, 4
jl 0x411430
jmp case.default.0x41196f
mov dword [esp + 0x2c], 3
call fcn.0043bcb0
cdq
mov ecx, 9
idiv ecx
mov eax, dword [esp + 0x16c]
cmp eax, 4
je 0x4114c2
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0xaf4], 0
je 0x41156e
cmp eax, 5
je 0x411577
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, 9
cmp edx, 9
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], edx
jl 0x4114e8
call fcn.0043bcb0
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
xor bl, bl
mov dword [esp + 0x14], edx
call fcn.0043bcb0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x3c
jge 0x41151b
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], bl
jne 0x41151b
mov bl, 1
mov esi, 1
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je 0x41154e
cmp esi, 1
jle 0x41154e
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, 5
mov dword [esp + esi*4 + 0x14], edx
xor eax, eax
test esi, esi
jle 0x411563
mov ecx, dword [esp + esi*4 + 0x14]
cmp ecx, dword [esp + eax*4 + 0x14]
je 0x411520
inc eax
cmp eax, esi
jl 0x411558
inc esi
cmp esi, 3
jl 0x411520
jmp case.default.0x41196f
cmp eax, 5
jne 0x4114d2
mov edx, 0xc
jmp 0x4114d2
mov dword [esp + 0x2c], 5
call fcn.0043bcb0
and eax, 0x80000007
jns 0x41159a
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [esp + 0x16c]
cmp ecx, ebx
jne 0x4115a9
xor eax, eax
jmp 0x4115b0
cmp ecx, 8
jne 0x4115b0
mov eax, ecx
lea edx, [eax + 1]
mov dword [esp + 0x58], edx
lea edx, [eax + 2]
mov dword [esp + 0x60], edx
lea edx, [eax + 3]
mov dword [esp + 0x50], eax
add eax, 4
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], eax
cmp ecx, ebx
jne 0x4115dc
mov dword [esp + 0x70], 0xc
xor bl, bl
or edi, 0xffffffff
call fcn.0043bcb0
cdq
idiv ebp
mov dword [esp + 0x14], edx
call fcn.0043bcb0
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0xaa
jge 0x411607
lea edi, [ecx - 0x60]
mov bl, 1
mov esi, 1
lea ebp, [esi + 4]
nop
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
cmp dword [esp + 0x14], ebp
jge 0x411630
test bl, bl
je 0x411630
cmp esi, edi
jne 0x411630
mov dword [esp + esi*4 + 0x14], ebp
xor eax, eax
test esi, esi
jle 0x41164b
mov ecx, dword [esp + esi*4 + 0x14]
lea ebx, [ebx]
cmp ecx, dword [esp + eax*4 + 0x14]
je 0x411610
inc eax
cmp eax, esi
jl 0x411640
inc esi
cmp esi, ebp
jl 0x411610
jmp case.default.0x41196f
mov dword [esp + 0x2c], 5
call fcn.0043bcb0
and eax, 0x80000003
jns 0x41166e
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
mov dword [esp + 0x50], edx
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, ecx
mov dword [esp + 0x58], edx
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, ebp
mov dword [esp + 0x60], edx
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, 9
mov dword [esp + 0x68], edx
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
xor eax, eax
cmp edx, dword [esp + eax*8 + 0x50]
je 0x4116d1
inc eax
cmp eax, 5
jl 0x4116e0
mov dword [esp + 0x70], edx
call fcn.0043bcb0
cdq
idiv ebp
mov esi, 1
lea edi, [esi + 4]
mov dword [esp + 0x14], edx
call fcn.0043bcb0
cdq
mov ecx, edi
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
cmp dword [esp + 0x14], edi
jge 0x411721
cmp esi, 4
jne 0x411721
mov dword [esp + 0x24], edi
xor eax, eax
test esi, esi
jle 0x41173b
mov ecx, dword [esp + esi*4 + 0x14]
jmp 0x411730
cmp ecx, dword [esp + eax*4 + 0x14]
je 0x411704
inc eax
cmp eax, esi
jl 0x411730
inc esi
cmp esi, edi
jl 0x411704
jmp case.default.0x41196f
mov ebp, 5
mov dword [esp + 0x2c], ebp
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
mov esi, edx
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], 0
je 0x411781
call fcn.0043bcb0
mov esi, eax
and esi, 0x80000003
jns 0x41177e
dec esi
or esi, 0xfffffffc
inc esi
add esi, 9
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], esi
lea ecx, [ecx]
call fcn.0043bcb0
cdq
mov ecx, 0xd
idiv ecx
cmp edx, esi
je 0x411790
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], edx
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + 0x14], edx
call fcn.0043bcb0
mov edi, eax
and edi, 0x80000003
jns 0x4117cb
dec edi
or edi, 0xfffffffc
inc edi
cmp edi, 3
jne 0x4117d4
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x28]
xor bl, bl
cmp byte [edx + 0xaf4], bl
jne 0x4117e4
mov bl, 1
mov esi, 1
lea esp, [esp]
cmp edi, 3
ja case.default.0x4117f9
jmp dword [edi*4 + 0x4121ec]
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je case.default.0x4117f9
cmp esi, 1
jle case.default.0x4117f9
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], 0
jne case.default.0x4117f9
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, ebp
mov dword [esp + esi*4 + 0x14], edx
jmp case.default.0x4117f9
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je case.default.0x4117f9
cmp esi, 2
jne case.default.0x4117f9
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], 0
jne case.default.0x4117f9
mov dword [esp + 0x1c], ebp
jmp case.default.0x4117f9
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je case.default.0x4117f9
cmp esi, 2
jle case.default.0x4117f9
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], 0
jne case.default.0x4117f9
call fcn.0043bcb0
and eax, 0x80000001
jns 0x4118b6
dec eax
or eax, 0xfffffffe
inc eax
add eax, ebp
jmp 0x4118e1
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
mov dword [esp + esi*4 + 0x14], edx
test bl, bl
je case.default.0x4117f9
cmp esi, 2
jg case.default.0x4117f9
mov edx, dword [esp + 0x28]
cmp byte [edx + 0xaf4], 0
jne case.default.0x4117f9
lea eax, [esi + 5]
mov dword [esp + esi*4 + 0x14], eax
xor eax, eax
test esi, esi
jle 0x4118ff
mov ecx, dword [esp + esi*4 + 0x14]
nop
cmp ecx, dword [esp + eax*4 + 0x14]
je 0x4117f0
inc eax
cmp eax, esi
jl 0x4118f0
inc esi
cmp esi, ebp
jl 0x4117f0
jmp case.default.0x41196f
mov esi, ebp
mov dword [esp + 0x2c], 4
call fcn.0043bcb0
cdq
mov ecx, 9
idiv ecx
mov eax, dword [esp + 0x16c]
cmp eax, 0xc
jne 0x411942
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
add edx, 9
jmp 0x41194f
cmp eax, 0xd
jne 0x41194f
mov edx, 0xc
lea esi, [eax - 5]
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x68], edx
call fcn.0043bcb0
cdq
idiv esi
cmp edx, ebx
ja case.default.0x41196f
jmp dword [edx*4 + 0x4121fc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], ebp
jmp case.default.0x41196f
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], 2
jmp case.default.0x41196f
mov dword [esp + 0x14], 5
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 2
jmp case.default.0x41196f
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 5
mov dword [esp + 0x20], 0
jmp case.default.0x41196f
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 5
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], ebx
jmp case.default.0x41196f
call fcn.0043bcb0
and eax, 0x80000001
jns 0x411a2c
dec eax
or eax, 0xfffffffe
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 5
call fcn.0043bcb0
cdq
mov ecx, 3
idiv ecx
mov dword [esp + 0x20], ebx
add edx, 2
mov dword [esp + 0x1c], edx
jmp case.default.0x41196f
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 8
mov dword [esp + 0x14], edx
jmp case.default.0x41196f
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 8
mov dword [esp + 0x14], edx
jmp case.default.0x41196f
mov dword [esp + 0x2c], 5
call fcn.0043bcb0
cdq
mov ecx, ebx
idiv ecx
mov edi, dword [esp + 0x16c]
mov esi, edx
inc esi
cmp edi, 0xf
jne 0x411ac6
xor esi, esi
jmp 0x411ad5
cmp edi, 0x10
je 0x411ad0
cmp edi, 0x11
jne 0x411ad5
mov esi, 8
call fcn.0043bcb0
and eax, 0x80000003
jns 0x411ae6
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x74], eax
cmp edi, 0x11
jne 0x411afa
mov eax, 3
mov dword [esp + 0x74], eax
jmp 0x411b1a
cmp edi, 0x10
jne 0x411b1a
nop
call fcn.0043bcb0
and eax, 0x80000003
jns 0x411b11
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x74], eax
cmp eax, 3
je 0x411b00
lea edx, [esi + 1]
mov dword [esp + 0x58], edx
lea ecx, [esi + 2]
lea edx, [esi + 3]
mov dword [esp + 0x50], esi
add esi, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], eax
cmp edi, 0xf
jne 0x411b5f
mov dword [esp + 0x70], 0xc
mov dword [esp + 0x6c], eax
call fcn.0043bcb0
cdq
mov ecx, ebp
idiv ecx
cmp edx, ebp
ja case.default.0x41196f
jmp dword [edx*4 + 0x41221c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 5
jmp case.default.0x41196f
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 5
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 4
jmp case.default.0x41196f
mov dword [esp + 0x14], 5
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], ebp
jmp case.default.0x41196f
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 3
mov dword [esp + 0x1c], 5
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ebp
jmp case.default.0x41196f
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 5
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 1
jmp case.default.0x41196f
mov dword [esp + 0x14], 2
mov dword [esp + 0x1c], ebp
jmp 0x411c25
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], 5
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], ebx
call fcn.0043bcb0
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x24], edx
xor eax, eax
push 0x34
push eax
lea edx, [esp + 0x12c]
push edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
call fcn.0043c670
or eax, 0xffffffff
add esp, 0xc
cmp dword [esp + 0x16c], 0xe
mov dword [esp + 0x88], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
jl 0x411cd7
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
jle 0x411db7
lea ebp, [esp + 0x4c]
mov edi, edi
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov ebx, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.004102f0
mov esi, dword [eax]
cmp dword [esp + esi*4 + 0x78], 2
mov edi, dword [eax + 4]
jle 0x411d45
mov eax, dword [esp + 0x16c]
cmp eax, 9
je 0x411d45
cmp eax, 0xe
jge 0x411d45
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov ebx, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.004102f0
mov esi, dword [eax]
cmp dword [esp + esi*4 + 0x78], 2
mov edi, dword [eax + 4]
jg 0x411d12
mov eax, dword [esp + 0x88]
cmp eax, 0xffffffff
jne 0x411d5a
mov dword [esp + 0x88], edi
jmp 0x411d62
cmp eax, edi
je 0x411d62
mov dword [esp + 0x48], edi
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + ebx*4 + 0x14]
cdq
mov ecx, 5
idiv ecx
lea ecx, [edx + eax*4]
add ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + ecx + 0x94], edi
mov dword [esp + ecx + 0x90], esi
test eax, eax
jne 0x411da5
inc dword [esp + esi*4 + 0x78]
inc dword [esp + edi*4 + 0x124]
lea esi, [esp + esi*4 + 0x78]
lea edi, [esp + edi*4 + 0x124]
inc ebx
add ebp, 8
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
jl 0x411cf0
xor esi, esi
mov dword [esp + 0x3c], esi
xor edx, edx
lea eax, [esi + esi*4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xe0]
add ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
or eax, 0xffffffff
mov dword [esp + 0xe8], ecx
cmp dword [esp + ecx + 0x94], eax
je 0x411dfc
cmp dword [esp + ecx + 0x90], eax
jne 0x412192
mov ebp, dword [esp + 0x16c]
mov ebx, dword [esp + 0x28]
cmp ebp, 0xe
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
push edx
mov byte [esp + 0x17], 1
push eax
jge 0x411e35
push 0xffffffffffffffff
lea esi, [esp + 0x164]
call fcn.00410250
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
jmp 0x411e4d
mov ecx, dword [esp + 0x7c]
push ecx
lea esi, [esp + 0x16c]
call fcn.00410250
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov ebx, dword [eax]
xor esi, esi
cmp dword [esp + 0x3c], esi
mov dword [esp + 0x30], ebx
jl 0x412116
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
lea edx, [esp + 0x94]
mov edi, edi
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x411e8c
cmp eax, 1
jne 0x411f14
cmp dword [esp + 0x2c], 2
jge 0x411f14
cmp ebp, 0xf
je 0x411ef3
cmp ebp, 0xe
jl 0x411f14
mov eax, dword [esp + 0x34]
cmp eax, ebx
jl 0x411eaa
cmp eax, edi
jle 0x41211d
cmp byte [esp + 0x13], 0
je 0x41211d
mov eax, dword [esp + 0x34]
test ebx, ebx
jle 0x411ed0
lea ecx, [ebx - 1]
cmp ecx, eax
je 0x411ecb
lea ecx, [ebx - 2]
cmp ecx, eax
jne 0x411ed0
mov byte [esp + 0x13], 0
test edi, edi
jle 0x411f14
cmp edi, 0xc
je 0x411f14
lea ecx, [edi + 1]
cmp ecx, eax
je 0x41211d
lea eax, [edi + 2]
cmp eax, dword [esp + 0x34]
je 0x41211d
jmp 0x411f14
cmp byte [esp + 0x13], 0
je 0x41211d
cmp dword [esp + 0x34], 0xc
je 0x41211d
cmp dword [esp + 0x34], 5
jle 0x41211d
cmp byte [esp + 0x13], 0
je 0x41211d
mov ebp, dword [esp + 0x34]
xor eax, eax
mov ecx, edx
cmp dword [ecx], ebp
je 0x41211d
inc eax
add ecx, 8
cmp eax, 5
jl 0x411f27
cmp byte [esp + 0x13], 0
je 0x41211d
mov ebp, dword [esp + 0x16c]
inc esi
add edx, 0x28
cmp esi, dword [esp + 0x3c]
jle 0x411e70
cmp dword [esp + 0x3c], 0
mov ebx, dword [esp + 0x30]
jne 0x412116
cmp byte [esp + 0x3b], 0
mov edi, dword [esp + 0x34]
je 0x411f80
cmp edi, dword [esp + 0x88]
jle 0x411f80
mov byte [esp + 0x13], 0
cmp dword [esp + ebx*4 + 0x78], 2
jl 0x411f96
cmp ebp, 9
je 0x411f96
cmp ebp, 0xe
jge 0x411f96
mov byte [esp + 0x13], 0
cmp ebp, 6
jl 0x41201c
cmp ebp, 9
jl 0x411fa9
cmp ebp, 0xe
jl 0x41201c
cmp ebp, 8
jg 0x412005
mov edx, dword [esp + 0x70]
inc edx
cmp ebp, 7
jne 0x411fbd
mov edx, dword [esp + 0x68]
inc edx
mov ecx, dword [esp + 0x50]
lea eax, [ecx - 1]
add ecx, 0xfffffffe
test eax, eax
jge 0x411fd0
mov eax, 0xc
test ecx, ecx
jge 0x411fd9
mov ecx, 0xc
cmp edi, edx
je 0x41211d
inc edx
cmp dword [esp + 0x34], edx
je 0x41211d
cmp dword [esp + 0x34], eax
je 0x41211d
cmp dword [esp + 0x34], ecx
jne 0x412116
jmp 0x41211d
cmp ebp, 0xe
jne 0x412116
cmp edi, 0xc
jne 0x412116
jmp 0x41211d
mov esi, 1
mov edx, esi
xor eax, eax
test eax, eax
jle 0x412060
mov ecx, dword [esp + eax*4 + 0x120]
cmp ecx, esi
jl 0x412041
cmp dword [esp + eax*4 + 0x124], esi
jge 0x41205e
cmp edi, eax
je 0x41205e
cmp dword [esp + eax*4 + 0x124], esi
jl 0x412055
cmp ecx, esi
jge 0x41205e
lea ecx, [eax - 1]
cmp edi, ecx
je 0x41205e
cmp edx, 5
jge 0x412060
mov edx, esi
jmp 0x412072
add edx, esi
cmp edx, 3
jge 0x41211d
mov edi, dword [esp + 0x34]
mov esi, 1
add eax, esi
cmp eax, 0xd
jl 0x412025
cmp byte [esp + 0x13], 0
je 0x41211d
mov ebp, dword [esp + 0x34]
lea ebp, [esp + ebp*4 + 0x124]
mov ecx, 1
lea edx, [esp + 0x154]
inc dword [ebp]
mov edi, dword [ebp]
lea esi, [ecx - 2]
xor eax, eax
test esi, esi
jl 0x4120af
cmp dword [edx - 0x34], eax
jmp 0x4120b2
cmp dword [edx], 0
jle 0x4120b9
mov eax, 1
lea esi, [ecx - 1]
test esi, esi
jl 0x4120c6
cmp dword [edx - 0x30], 0
jmp 0x4120c9
cmp dword [edx], 0
jle 0x4120cc
inc eax
test ecx, ecx
jl 0x4120d6
cmp dword [edx - 0x2c], 0
jmp 0x4120d9
cmp dword [edx], 0
jle 0x4120dc
inc eax
lea esi, [ecx + 1]
test esi, esi
jl 0x4120e9
cmp dword [edx - 0x28], 0
jmp 0x4120ec
cmp dword [edx], 0
jle 0x4120ef
inc eax
add ecx, 2
js 0x4120fa
cmp dword [edx - 0x24], 0
jmp 0x4120fd
cmp dword [edx], 0
jle 0x412100
inc eax
dec edi
cmp eax, 4
mov dword [ebp], edi
jge 0x41211d
mov ecx, esi
lea eax, [ecx - 2]
add edx, 4
cmp eax, 9
jl 0x41209b
cmp byte [esp + 0x13], 0
jne 0x412154
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0xae8]
cmp eax, 0xa
jl 0x412145
mov ebp, dword [esp + 0x16c]
cmp ebp, 0xe
jl 0x411e07
cmp eax, 0xf
jg 0x411e07
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x158
ret 4
cmp dword [esp + 0x3c], 0
jne 0x412171
mov eax, dword [esp + 0x34]
inc dword [esp + eax*4 + 0x124]
inc dword [esp + ebx*4 + 0x78]
lea eax, [esp + eax*4 + 0x124]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [esp + eax + 0x90], ebx
mov dword [esp + eax + 0x94], ecx
inc edx
cmp edx, 5
mov dword [esp + 0x2c], edx
jl 0x411dcd
inc esi
cmp esi, 2
mov dword [esp + 0x3c], esi
jl 0x411dbd
jmp 0x410c55