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

Disassembly:
sub esp, 0xac
push ebx
mov ebx, ecx
push ebp
push esi
lea edx, [ebx + 8]
push edi
xor eax, eax
mov ecx, 0xe
mov esi, edx
lea edi, [esp + 0x84]
mov dword [esp + 0x10], eax
mov ebp, 1
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x14], eax
lea esi, [ebx + 0x15c]
mov dword [esp + 0x18], eax
mov ecx, 0x2b
mov edi, esi
mov word [esp + 0x1c], ax
rep stosd dword es:[edi], eax
mov eax, dword [0x4312ec]
mov dword [esp + 0x24], ebx
cmp eax, ebp
mov dword [esp + 0x74], esi
jne 0x402585
mov al, byte [esp + 0xcc]
test al, al
je 0x402448
mov dword [esi], ebp
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x40246b
mov dword [ebx + 0x16c], ebp
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x40246b
cmp dword [ebx + 0x154], 0x13
jl 0x40246b
mov dword [ebx + 0x170], ebp
mov al, byte [esp + 0xc8]
mov ebp, 2
test al, al
je 0x402481
mov dword [ebx + 0x184], ebp
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x402492
mov ecx, dword [esp + 0xc4]
mov dword [ebx + 0x3c], ecx
mov eax, dword [ebx + 0x208]
xor ecx, ecx
mov esi, dword [eax + 4]
mov eax, edx
mov edx, 0xe
cmp dword [eax], esi
jne 0x4024a9
inc ecx
add eax, 4
dec edx
jne 0x4024a4
xor esi, esi
mov dword [ebx + 0x1f8], ecx
xor edx, edx
lea eax, [ebx + 0x118]
mov edi, 0xe
mov ecx, dword [eax]
test ecx, ecx
je 0x4024da
cmp dword [eax - 0xd8], ebp
jne 0x4024d5
inc esi
jmp 0x4024da
test ecx, ecx
je 0x4024da
inc edx
add eax, 4
dec edi
jne 0x4024c4
lea ecx, [esi + esi]
lea eax, [esp + 0x24]
mov dword [ebx + 0x1fc], ecx
mov dword [ebx + 0x200], edx
lea edx, [esp + 0x20]
lea ecx, [esp + 0x28]
push edx
push eax
push ecx
mov ecx, dword [ebx + 4]
xor edi, edi
xor esi, esi
call fcn.004146b0
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
inc ebp
cmp eax, 4
jge 0x402535
lea edx, [eax + 0x1f]
lea eax, [ebx + 8]
mov ecx, 0xe
cmp dword [eax], edx
jne 0x402528
inc esi
add eax, 4
dec ecx
jne 0x402523
cmp esi, 2
jle 0x402535
mov edi, ebp
mov eax, dword [esp + 0x20]
xor esi, esi
cmp eax, 4
jge 0x40255d
lea edx, [eax + 0x1f]
lea eax, [ebx + 8]
mov ecx, 0xe
cmp dword [eax], edx
jne 0x402550
inc esi
add eax, 4
dec ecx
jne 0x40254b
cmp esi, 2
jle 0x40255d
add edi, ebp
mov ecx, dword [esp + 0x74]
mov dword [ebx + 0x204], edi
xor eax, eax
mov edx, 0x2b
mov ebx, dword [ecx]
add ecx, 4
add eax, ebx
dec edx
jne 0x40256e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret 0x10
mov al, byte [esp + 0xcc]
xor edi, edi
test al, al
je 0x402594
mov dword [esi], ebp
mov eax, dword [ebx + 0x150]
mov esi, 0xc
cmp eax, edi
mov dword [ebx + 0x160], ebp
je 0x4025d6
mov edx, dword [ebx + 0x150]
mov ecx, ebp
cmp edx, ebp
jle 0x4025d6
lea eax, [ebx + 0x44]
cmp dword [eax + 0xd8], edi
je 0x4025d0
cmp dword [eax], 2
jne 0x4025d0
add ecx, 3
add eax, esi
cmp ecx, edx
jl 0x4025b8
jmp 0x4025d6
mov dword [ebx + 0x160], edi
cmp dword [ebx + 0x150], esi
jne 0x402638
cmp dword [ebx + 0x3c], edi
jne 0x402607
mov dword [ebx + 0x164], 3
xor eax, eax
lea ecx, [ebx + 0x40]
cmp dword [ecx], 2
je 0x402601
inc eax
add ecx, 4
cmp eax, esi
jl 0x4025f2
jmp 0x402607
mov dword [ebx + 0x164], edi
cmp dword [ebx + 0x150], esi
jne 0x402638
cmp dword [ebx + 0x3c], edi
je 0x402659
mov dword [ebx + 0x168], 2
xor eax, eax
lea ecx, [ebx + 0x40]
cmp dword [ecx], 2
je 0x402632
inc eax
add ecx, 4
cmp eax, esi
jl 0x402623
jmp 0x402638
mov dword [ebx + 0x168], edi
cmp dword [ebx + 0x3c], edi
je 0x402659
mov dword [ebx + 0x16c], ebp
mov eax, dword [ebx + 0x3c]
cmp eax, edi
je 0x402659
cmp dword [ebx + 0x154], 0x13
jl 0x402659
mov dword [ebx + 0x170], ebp
mov al, byte [esp + 0xcc]
test al, al
je 0x40267b
cmp dword [ebx + 0x3c], edi
je 0x402680
cmp dword [ebx + 0x154], edi
jne 0x40267b
mov dword [ebx + 0x174], 0xa
cmp dword [ebx + 0x3c], edi
jne 0x40268a
mov edx, dword [esp + 0xc4]
mov dword [ebx + 0x3c], edx
push ebp
mov ecx, ebx
call fcn.004010c0
lea eax, [ebx + 8]
mov dword [ebx + 0x178], ebp
xor edx, edx
mov ecx, eax
mov eax, dword [ecx]
cmp eax, ebp
je 0x4026ce
cmp eax, 9
je 0x4026ce
cmp eax, 0xb
je 0x4026ce
cmp eax, 0x13
je 0x4026ce
cmp eax, 0x15
je 0x4026ce
cmp eax, 0x1d
je 0x4026ce
cmp eax, 0x1e
jg 0x4026ce
inc edx
add ecx, 4
cmp edx, 0xe
jl 0x40269f
jmp 0x4026d4
mov dword [ebx + 0x178], edi
lea eax, [ebx + 8]
mov dword [esp + 0x20], edi
mov edi, eax
mov ebp, dword [edi]
cmp ebp, 0x1e
jge 0x402763
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea edx, [ebx + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov word [esp + 0x1c], cx
cmp dword [edx], ebp
jne 0x40270b
inc eax
mov byte [esp + ecx + 0x10], 1
cmp eax, 2
je 0x402719
inc ecx
add edx, 4
cmp ecx, 0xe
jl 0x4026fc
cmp eax, 2
jne 0x402739
xor ecx, ecx
lea esi, [ebp + 1]
lea edx, [ebx + 8]
cmp dword [edx], esi
jne 0x402730
inc eax
mov byte [esp + ecx + 0x10], 1
cmp eax, 4
je 0x40273e
inc ecx
add edx, 4
cmp ecx, 0xe
jl 0x402721
cmp eax, 4
jne 0x40275e
xor ecx, ecx
lea esi, [ebp + 2]
lea edx, [ebx + 8]
cmp dword [edx], esi
jne 0x402755
inc eax
mov byte [esp + ecx + 0x10], 1
cmp eax, 6
je 0x40277a
inc ecx
add edx, 4
cmp ecx, 0xe
jl 0x402746
cmp eax, 6
je 0x40277a
mov eax, dword [esp + 0x20]
add edi, 4
inc eax
cmp eax, 0xe
mov dword [esp + 0x20], eax
jl 0x4026dd
jmp 0x4027da
lea eax, [ebx + 8]
xor ebp, ebp
mov dword [esp + 0x20], eax
mov al, byte [esp + ebp + 0x10]
test al, al
jne 0x4027bf
xor edx, edx
lea esi, [ebx + 8]
mov al, byte [esp + edx + 0x10]
test al, al
jne 0x4027b4
cmp edx, ebp
je 0x4027b4
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x4027bf
lea edi, [ecx + 1]
cmp eax, edi
je 0x4027bf
dec ecx
cmp eax, ecx
je 0x4027bf
inc edx
add esi, 4
cmp edx, 0xe
jge 0x4027da
jmp 0x402790
mov ecx, dword [esp + 0x20]
inc ebp
add ecx, 4
cmp ebp, 0xe
mov dword [esp + 0x20], ecx
jl 0x402783
mov dword [ebx + 0x17c], 1
mov eax, dword [ebx + 0x150]
test eax, eax
jne 0x402834
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp edx, eax
jne 0x402834
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jne 0x402834
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
cmp ecx, eax
jne 0x402834
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
cmp edx, eax
jne 0x402834
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
cmp eax, ecx
jne 0x402834
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jne 0x402834
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x3c]
cmp edx, eax
jne 0x402834
mov dword [ebx + 0x180], 2
mov al, byte [esp + 0xc8]
test al, al
je 0x402849
mov dword [ebx + 0x184], 2
mov eax, dword [esp + 0xc0]
test eax, eax
jle 0x40285e
lea eax, [eax + eax - 1]
mov dword [ebx + 0x188], eax
mov esi, dword [ebx + 0x150]
xor ecx, ecx
mov dword [esp + 0x10], ecx
xor edi, edi
mov dword [esp + 0x14], ecx
xor ebp, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebp
test esi, esi
mov word [esp + 0x1c], cx
jle 0x40289e
lea eax, [ebx + 0x40]
mov ecx, esi
mov edx, dword [eax + 0xd8]
test edx, edx
je 0x402898
cmp dword [eax], 2
jne 0x402898
inc edi
add eax, 4
dec ecx
jne 0x402888
mov eax, esi
cmp eax, 0xc
jge 0x4028d6
lea ecx, [ebx + eax*4 + 8]
mov dl, byte [esp + eax + 0x10]
test dl, dl
jne 0x4028cd
mov edx, dword [ecx]
cmp edx, dword [ecx + 4]
jne 0x4028cd
cmp edx, dword [ecx + 8]
jne 0x4028cd
mov byte [esp + eax + 0x12], 1
mov byte [esp + eax + 0x11], 1
mov byte [esp + eax + 0x10], 1
inc edi
inc eax
add ecx, 4
cmp eax, 0xc
jl 0x4028a9
cmp edi, 2
jle 0x40292b
mov edx, esi
cmp edx, 0xe
jge 0x40292b
mov al, byte [esp + edx + 0x10]
test al, al
jne 0x402921
mov eax, esi
mov byte [esp + edx + 0x10], 1
cmp eax, 0xe
jge 0x402921
lea ecx, [ebx + eax*4 + 8]
cmp byte [esp + eax + 0x10], 0
jne 0x402909
mov ebp, dword [ecx]
cmp ebp, dword [ebx + edx*4 + 8]
je 0x402914
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x4028fa
jmp 0x402921
mov edx, 0x186a0
mov dword [esp + 0x20], 1
inc edx
cmp edx, 0xe
jl 0x4028e2
mov ebp, dword [esp + 0x20]
cmp edi, 4
jne 0x402940
test ebp, ebp
je 0x402953
mov dword [ebx + 0x18c], 8
jmp 0x402953
cmp edi, 3
jne 0x402953
test ebp, ebp
je 0x402953
mov dword [ebx + 0x190], 4
mov al, byte [ebx + 0x15a]
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
test al, al
mov word [esp + 0x1c], dx
je 0x40297a
mov dword [ebx + 0x194], 2
xor edx, edx
lea eax, [ebx + 8]
xor esi, esi
xor edi, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
xor ebp, ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [ebx + 0x198], 3
mov ecx, eax
mov eax, dword [ecx]
cmp eax, 1
jne 0x4029dd
inc dword [esp + 0x2c]
jmp 0x402a99
cmp eax, 2
jne 0x4029eb
inc dword [esp + 0x30]
jmp 0x402a99
cmp eax, 3
jne 0x4029f6
inc esi
jmp 0x402a99
cmp eax, 7
jne 0x402a01
inc edi
jmp 0x402a99
cmp eax, 8
jne 0x402a0f
inc dword [esp + 0x3c]
jmp 0x402a99
cmp eax, 9
jne 0x402a1a
inc dword [esp + 0x40]
jmp 0x402a99
cmp eax, 0xb
jne 0x402a25
inc dword [esp + 0x44]
jmp 0x402a99
cmp eax, 0xc
jne 0x402a30
inc dword [esp + 0x48]
jmp 0x402a99
cmp eax, 0xd
jne 0x402a38
inc ebp
jmp 0x402a99
cmp eax, 0x11
jne 0x402a43
inc dword [esp + 0x50]
jmp 0x402a99
cmp eax, 0x12
jne 0x402a4e
inc dword [esp + 0x54]
jmp 0x402a99
cmp eax, 0x13
jne 0x402a59
inc dword [esp + 0x58]
jmp 0x402a99
cmp eax, 0x15
jne 0x402a64
inc dword [esp + 0x5c]
jmp 0x402a99
cmp eax, 0x16
jne 0x402a6f
inc dword [esp + 0x60]
jmp 0x402a99
cmp eax, 0x17
jne 0x402a7a
inc dword [esp + 0x64]
jmp 0x402a99
cmp eax, 0x1b
jne 0x402a85
inc dword [esp + 0x68]
jmp 0x402a99
cmp eax, 0x1c
jne 0x402a90
inc dword [esp + 0x6c]
jmp 0x402a99
cmp eax, 0x1d
jne 0x402aa8
inc dword [esp + 0x70]
inc edx
add ecx, 4
cmp edx, 0xe
jl 0x4029cd
jmp 0x402ab2
mov dword [ebx + 0x198], 0
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x402b24
mov edx, dword [esp + 0x30]
cmp edx, esi
jne 0x402b1a
mov ecx, dword [esp + 0x3c]
cmp edi, ecx
jne 0x402b1a
mov eax, dword [esp + 0x48]
cmp eax, ebp
jne 0x402b1a
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
cmp esi, ebp
jne 0x402b1a
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
cmp esi, edi
jne 0x402b1a
mov esi, dword [esp + 0x6c]
cmp dword [esp + 0x68], esi
jne 0x402b1a
cmp dword [esp + 0x2c], edx
jl 0x402b1a
cmp dword [esp + 0x40], ecx
jl 0x402b1a
cmp dword [esp + 0x44], eax
jl 0x402b1a
cmp dword [esp + 0x58], ebp
jl 0x402b1a
cmp dword [esp + 0x5c], edi
jl 0x402b1a
cmp dword [esp + 0x70], esi
jge 0x402b24
mov dword [ebx + 0x198], 0
xor ebp, ebp
xor edi, edi
mov esi, 1
xor eax, eax
lea edx, [esi + ebp]
lea ecx, [ebx + 8]
cmp dword [ecx], edx
je 0x402b44
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x402b35
jmp 0x402b45
inc edi
inc esi
cmp esi, 0xa
jl 0x402b2d
cmp edi, 9
je 0x402b5a
add ebp, 0xa
cmp ebp, 0x1e
jl 0x402b26
jmp 0x402b64
mov dword [ebx + 0x19c], 3
xor ebp, ebp
xor edx, edx
lea eax, [ebx + 8]
mov ecx, 0xe
cmp dword [eax], 0x1e
jle 0x402b76
inc edx
add eax, 4
dec ecx
jne 0x402b70
cmp edx, 0xe
jne 0x402b8d
mov dword [ebx + 0x1a0], 0xc
jmp 0x402bf5
cmp edx, ebp
je 0x402bf5
xor eax, eax
lea ecx, [ebx + 8]
cmp dword [ecx], 0x1e
jl 0x402ba6
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x402b96
jmp 0x402bbb
mov ecx, dword [ebx + eax*4 + 8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebx + 0x1a4], 4
xor esi, esi
lea ecx, [ebx + 8]
mov eax, dword [ecx]
cmp eax, 0x1e
jg 0x402be4
lea edi, [edx + edx*4]
shl edi, 1
cmp eax, edi
jl 0x402bef
lea edi, [edx + edx*4 + 5]
shl edi, 1
cmp eax, edi
jg 0x402bef
inc esi
add ecx, 4
cmp esi, 0xe
jl 0x402bca
jmp 0x402bf5
mov dword [ebx + 0x1a4], ebp
mov dword [esp + 0x20], ebp
lea ecx, [ebx + 8]
mov esi, 0xe
mov eax, dword [ecx]
cmp eax, 0x1e
jle 0x402c0b
inc ebp
jmp 0x402c1c
cdq
mov edi, 0xa
idiv edi
cmp edx, 5
jne 0x402c1c
inc dword [esp + 0x20]
add ecx, 4
dec esi
jne 0x402c01
cmp ebp, 5
jne 0x402c34
cmp dword [esp + 0x20], 9
jne 0x402c34
mov dword [ebx + 0x1a8], ebp
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov word [esp + 0x1c], cx
mov eax, dword [ebx + edi*4 + 8]
cmp eax, 0x1e
jge 0x402cef
cdq
mov ecx, 0xa
xor ebp, ebp
idiv ecx
lea esi, [ebx + 8]
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov word [esp + 0x1c], dx
mov eax, dword [esi]
cmp eax, 0x1e
jge 0x402c9b
cdq
mov ebx, 0xa
idiv ebx
cmp edx, dword [esp + 0x28]
jne 0x402c97
inc ebp
mov byte [esp + ecx + 0x10], 1
mov ebx, dword [esp + 0x24]
inc ecx
add esi, 4
cmp ecx, 0xe
jl 0x402c7c
cmp ebp, 9
jl 0x402cef
xor edi, edi
mov edx, 6
mov al, byte [esp + edi + 0x10]
test al, al
jne 0x402ce9
mov byte [esp + edi + 0x10], 1
xor eax, eax
lea ecx, [ebx + 8]
cmp byte [esp + eax + 0x10], 0
jne 0x402cd3
mov esi, dword [ecx]
mov ebp, dword [ebx + edi*4 + 8]
cmp esi, ebp
je 0x402cde
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x402cc2
jmp 0x402ce9
mov dword [ebx + 0x1ac], edx
mov edi, 0x2710
inc edi
cmp edi, 0xe
jl 0x402cb0
inc edi
cmp edi, 0xe
jl 0x402c49
xor edx, edx
lea eax, [ebx + 0x118]
mov ecx, 0xe
cmp dword [eax], 0
je 0x402d0c
inc edx
add eax, 4
dec ecx
jne 0x402d06
cmp edx, 3
jl 0x402d21
mov dword [ebx + 0x1b0], 8
mov edi, 0xe
lea eax, [ebx + 8]
mov esi, 0xd
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, edx
jge 0x402d3c
mov dword [eax + 4], edx
mov dword [eax], ecx
add eax, 4
dec esi
jne 0x402d2e
dec edi
jne 0x402d26
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
jne 0x402d8d
mov esi, 1
lea eax, [ebx + 0x10]
mov edx, 6
mov ecx, dword [eax]
mov edi, dword [eax + 4]
cmp ecx, edi
jne 0x402d6e
mov edi, dword [eax - 4]
inc edi
cmp ecx, edi
jne 0x402d6e
inc esi
add eax, 8
dec edx
jne 0x402d5c
cmp esi, 7
jne 0x402d8d
mov eax, dword [ebx + 0x150]
test eax, eax
jne 0x402d8d
mov dword [ebx + 0x1b4], 8
lea ebp, [ebx + 8]
mov ecx, 0xe
lea esi, [esp + 0x84]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x402db1
mov ecx, dword [esp + 0xc4]
mov dword [ebx + 0x3c], ecx
push 1
mov ecx, ebx
call fcn.004010c0
mov ecx, dword [ebp]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
xor esi, esi
shr eax, 0x1f
add edx, eax
mov dword [ebx + 0x1b8], 8
mov ecx, ebp
lea eax, [edx + edx*4]
shl eax, 1
mov edi, dword [ecx]
cmp edi, eax
jl 0x402e01
lea ebp, [edx + edx*4 + 5]
shl ebp, 1
cmp edi, ebp
jg 0x402e01
cmp edi, 0x1e
jg 0x402e01
inc esi
add ecx, 4
cmp esi, 0xe
jl 0x402de1
jmp 0x402e0b
mov dword [ebx + 0x1b8], 0
xor ecx, ecx
lea eax, [ebx + 8]
mov esi, 0xe
cmp dword [eax], 0x22
jle 0x402e1b
inc ecx
add eax, 4
dec esi
jne 0x402e15
mov eax, dword [ebx + 0x180]
test eax, eax
jne 0x402e6e
cmp ecx, 3
je 0x402e64
cmp ecx, 5
je 0x402e64
cmp ecx, 6
jne 0x402e46
mov dword [ebx + 0x1bc], 2
jmp 0x402e6e
cmp ecx, 8
jne 0x402e53
mov dword [ebx + 0x1c0], ecx
jmp 0x402e6e
cmp ecx, 9
jne 0x402e6e
mov dword [ebx + 0x1c4], 0xc
jmp 0x402e6e
mov dword [ebx + 0x1bc], 1
mov eax, dword [ebx + 0x150]
mov dword [esp + 0x20], 0
test eax, eax
jne 0x402ecc
mov eax, dword [ebx + 0x1b8]
test eax, eax
je 0x402ecc
mov eax, dword [ebx + 0x19c]
test eax, eax
je 0x402ecc
lea eax, [edx + edx*4]
lea ecx, [ebx + 8]
shl eax, 1
mov esi, 0xe
lea edi, [eax + 1]
mov edx, dword [ecx]
cmp edx, edi
je 0x402eb1
lea ebp, [eax + 9]
cmp edx, ebp
jne 0x402eb5
inc dword [esp + 0x20]
add ecx, 4
dec esi
jne 0x402ea4
cmp dword [esp + 0x20], 6
jl 0x402ecc
mov dword [ebx + 0x1c8], 0xa
xor esi, esi
lea ecx, [ebx + 8]
mov edx, 0xe
mov eax, dword [ecx]
cmp eax, 0x1e
jle 0x402ee3
cmp eax, 0x23
jge 0x402ee3
inc esi
add ecx, 4
dec edx
jne 0x402ed6
cmp esi, 0xb
jne 0x402efa
mov dword [ebx + 0x1cc], 8
jmp 0x402f05
cmp esi, 0xc
jne 0x402f05
mov dword [ebx + 0x1d0], esi
mov eax, dword [ebx + 0x150]
xor esi, esi
cmp eax, 0xc
jne 0x402f5c
mov eax, dword [ebx + 0x18c]
test eax, eax
jne 0x402f5c
mov eax, dword [ebx + 0x190]
test eax, eax
jne 0x402f5c
lea eax, [ebx + 8]
mov edx, 4
mov edi, 2
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
cmp ecx, ebp
jne 0x402f47
cmp ecx, dword [eax + 8]
jne 0x402f47
cmp dword [eax + 0x38], edi
je 0x402f47
inc esi
add eax, 0xc
dec edx
jne 0x402f33
cmp esi, 4
jne 0x402f5c
mov dword [ebx + 0x1d4], 1
mov ecx, 0xe
lea esi, [esp + 0x84]
lea edi, [ebx + 8]
xor ebp, ebp
rep movsd dword es:[edi], dword [esi]
mov esi, 1
cmp esi, 0xa
je 0x402f90
cmp esi, 0x14
je 0x402f90
cmp esi, 0x1e
je 0x402f90
push esi
mov ecx, ebx
call fcn.00401390
test al, al
je 0x402f90
inc ebp
inc esi
cmp esi, 0x26
jl 0x402f74
mov edi, 1
cmp ebp, edi
jne 0x402fa5
mov dword [ebx + 0x1d8], edi
mov eax, dword [ebx + 0x3c]
xor ebp, ebp
cmp eax, ebp
jne 0x402fb8
mov ecx, dword [esp + 0xc4]
mov dword [ebx + 0x3c], ecx
push edi
mov ecx, ebx
call fcn.004010c0
mov al, byte [ebx + 0x158]
test al, al
je 0x402fd8
cmp dword [ebx + 0x150], ebp
jne 0x402fd8
mov dword [ebx + 0x1dc], edi
mov al, byte [esp + 0xcc]
test al, al
jne 0x402ff5
cmp dword [ebx + 0x154], ebp
jne 0x402ff5
mov dword [ebx + 0x1e0], 8
mov esi, 0xa
lea eax, [ebx + 8]
mov dword [ebx + 0x1e4], esi
xor edx, edx
mov ecx, eax
mov eax, dword [ecx]
cmp eax, 0x16
je 0x403027
cmp eax, 0x17
je 0x403027
cmp eax, 0x18
je 0x403027
cmp eax, 0x1a
je 0x403027
cmp eax, 0x1c
je 0x403027
cmp eax, 0x24
jne 0x403032
inc edx
add ecx, 4
cmp edx, 0xe
jl 0x403007
jmp 0x403038
mov dword [ebx + 0x1e4], ebp
lea eax, [ebx + 8]
mov dword [ebx + 0x1e8], esi
xor edx, edx
mov ecx, eax
mov eax, dword [ecx]
cmp eax, edi
je 0x403064
cmp eax, 9
je 0x403064
cmp eax, 0xb
je 0x403064
cmp eax, 0x13
je 0x403064
cmp eax, 0x15
je 0x403064
cmp eax, 0x1d
jne 0x40306f
inc edx
add ecx, 4
cmp edx, 0xe
jl 0x403045
jmp 0x403075
mov dword [ebx + 0x1e8], ebp
cmp dword [ebx + 0x1e8], ebp
je 0x403083
mov dword [ebx + 0x198], ebp
lea eax, [ebx + 8]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
mov ecx, dword [eax]
cmp ecx, 0xa
jge 0x403214
xor edx, edx
xor eax, eax
mov dword [esp + 0x10], edx
lea esi, [ecx + 1]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov word [esp + 0x1c], dx
mov byte [esp + ebp + 0x10], 1
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x4030cb
inc eax
add edx, 4
cmp eax, 0xe
jl 0x4030b9
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 2]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x4030ea
inc eax
add edx, 4
cmp eax, 0xe
jl 0x4030d8
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 0xa]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x403109
inc eax
add edx, 4
cmp eax, 0xe
jl 0x4030f7
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 0xb]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x403128
inc eax
add edx, 4
cmp eax, 0xe
jl 0x403116
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 0xc]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x403147
inc eax
add edx, 4
cmp eax, 0xe
jl 0x403135
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 0x14]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x403166
inc eax
add edx, 4
cmp eax, 0xe
jl 0x403154
jmp 0x403214
mov byte [esp + eax + 0x10], 1
xor eax, eax
lea esi, [ecx + 0x15]
lea edx, [ebx + 8]
cmp dword [edx], esi
je 0x403185
inc eax
add edx, 4
cmp eax, 0xe
jl 0x403173
jmp 0x403214
mov byte [esp + eax + 0x10], 1
lea edx, [ecx + 0x16]
xor eax, eax
lea ecx, [ebx + 8]
cmp dword [ecx], edx
je 0x4031a1
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x403192
jmp 0x403214
mov edi, dword [ebx + 0x150]
mov byte [esp + eax + 0x10], 1
cmp edi, 0xe
jge 0x40320a
lea eax, [ebx + edi*4 + 8]
mov dword [esp + 0x24], eax
mov al, byte [esp + edi + 0x10]
test al, al
jne 0x4031f5
xor edx, edx
lea esi, [ebx + 8]
mov al, byte [esp + edx + 0x10]
test al, al
jne 0x4031ea
cmp edx, edi
je 0x4031ea
mov ecx, dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x4031f5
lea ebp, [ecx - 1]
cmp eax, ebp
je 0x4031f5
inc ecx
cmp eax, ecx
je 0x4031f5
inc edx
add esi, 4
cmp edx, 0xe
jge 0x40322d
jmp 0x4031c6
mov ecx, dword [esp + 0x24]
inc edi
add ecx, 4
cmp edi, 0xe
mov dword [esp + 0x24], ecx
jl 0x4031b9
mov ebp, dword [esp + 0x20]
mov dword [ebx + 0x1ec], 3
mov eax, dword [esp + 0x28]
inc ebp
add eax, 4
cmp ebp, 0xe
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
jl 0x40308e
mov eax, dword [ebx + 0x150]
xor esi, esi
xor edi, edi
cmp eax, 5
jle 0x4032f5
mov eax, dword [ebx + 0x18c]
test eax, eax
jne 0x4032f5
mov eax, dword [ebx + 0x190]
test eax, eax
jne 0x4032f5
xor edx, edx
xor eax, eax
mov dword [esp + 0x10], edx
lea ecx, [ebx + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov word [esp + 0x1c], dx
mov dl, byte [esp + eax + 0x10]
test dl, dl
jne 0x40329a
mov edx, dword [ecx]
mov ebp, dword [ecx + 4]
cmp edx, ebp
jne 0x40329a
cmp edx, dword [ecx + 8]
jne 0x40329a
mov byte [esp + eax + 0x12], 1
mov byte [esp + eax + 0x11], 1
mov byte [esp + eax + 0x10], 1
inc esi
inc eax
add ecx, 4
cmp eax, 0xc
jl 0x403274
cmp esi, 3
jle 0x4032e6
xor edx, edx
mov al, byte [esp + edx + 0x10]
test al, al
jne 0x4032e0
mov byte [esp + edx + 0x10], 1
xor eax, eax
lea ecx, [ebx + 8]
cmp byte [esp + eax + 0x10], 0
jne 0x4032cb
mov ebp, dword [ecx]
cmp ebp, dword [ebx + edx*4 + 8]
je 0x4032d6
inc eax
add ecx, 4
cmp eax, 0xe
jl 0x4032bc
jmp 0x4032e0
mov edx, 0x186a0
mov edi, 1
inc edx
cmp edx, 0xe
jl 0x4032aa
cmp esi, 4
jne 0x4032f5
test edi, edi
je 0x4032f5
mov dword [ebx + 0x1f0], esi
mov eax, dword [ebx + 0x150]
test eax, eax
jne 0x40345e
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea edx, [ebx + 8]
mov dword [esp + 0x14], ecx
mov esi, edx
mov dword [esp + 0x18], ecx
mov edi, 0xc
mov word [esp + 0x1c], cx
mov edx, dword [esi]
cmp edx, 1
jne 0x403334
test eax, eax
jne 0x403334
mov eax, edx
jmp 0x403406
cmp edx, 9
jne 0x403348
cmp eax, 1
jne 0x403348
mov eax, 2
jmp 0x403406
cmp edx, 0xb
jne 0x40335c
cmp eax, 2
jne 0x40335c
mov eax, 3
jmp 0x403406
cmp edx, 0x13
jne 0x403370
cmp eax, 3
jne 0x403370
mov eax, 4
jmp 0x403406
cmp edx, 0x15
jne 0x403384
cmp eax, 4
jne 0x403384
mov eax, 5
jmp 0x403406
cmp edx, 0x1d
jne 0x403395
cmp eax, 5
jne 0x403395
mov eax, 6
jmp 0x403406
cmp edx, 0x1f
jne 0x4033a6
cmp eax, 6
jne 0x4033a6
mov eax, 7
jmp 0x403406
cmp edx, 0x20
jne 0x4033b7
cmp eax, 7
jne 0x4033b7
mov eax, 8
jmp 0x403406
cmp edx, 0x21
jne 0x4033c8
cmp eax, 8
jne 0x4033c8
mov eax, 9
jmp 0x403406
cmp edx, 0x22
jne 0x4033d9
cmp eax, 9
jne 0x4033d9
mov eax, 0xa
jmp 0x403406
cmp edx, 0x23
jne 0x4033ea
cmp eax, 0xa
jne 0x4033ea
mov eax, 0xb
jmp 0x403406
cmp edx, 0x24
jne 0x4033f8
cmp eax, 0xb
jne 0x4033f8
mov eax, edi
jmp 0x403406
cmp edx, 0x25
jne 0x40340b
cmp eax, edi
jne 0x40340b
mov eax, 0xd
mov byte [esp + ecx + 0x10], 1
inc ecx
add esi, 4
cmp ecx, 0xe
jl 0x403322
cmp eax, 0xd
jne 0x40345e
lea eax, [ebx + 8]
xor ecx, ecx
mov esi, eax
mov al, byte [esp + ecx + 0x10]
test al, al
jne 0x403455
mov eax, dword [esi]
cmp eax, 0x1e
jg 0x403445
cdq
mov ebp, 0xa
idiv ebp
cmp edx, 1
je 0x403445
cmp edx, 9
jne 0x403455
mov dword [ebx + 0x1f4], edi
mov dword [ebx + 0x1bc], 0
inc ecx
add esi, 4
cmp ecx, 0xe
jl 0x403424
mov edx, dword [ebx + 0x208]
xor ecx, ecx
lea eax, [ebx + 8]
mov esi, dword [edx + 4]
mov edx, 0xe
cmp dword [eax], esi
jne 0x403476
inc ecx
add eax, 4
dec edx
jne 0x403471
mov dword [ebx + 0x1f8], ecx
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x80]
push eax
lea edx, [esp + 0x7c]
push ecx
mov ecx, dword [ebx + 4]
push edx
xor edi, edi
xor esi, esi
call fcn.004146b0
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
inc ebp
cmp eax, 4
jge 0x4034ce
lea edx, [eax + 0x1f]
lea eax, [ebx + 8]
mov ecx, 0xe
cmp dword [eax], edx
jne 0x4034c1
inc esi
add eax, 4
dec ecx
jne 0x4034bc
cmp esi, 2
jle 0x4034ce
mov edi, ebp
mov eax, dword [esp + 0x7c]
xor esi, esi
cmp eax, 4
jge 0x4034f6
lea edx, [eax + 0x1f]
lea eax, [ebx + 8]
mov ecx, 0xe
cmp dword [eax], edx
jne 0x4034e9
inc esi
add eax, 4
dec ecx
jne 0x4034e4
cmp esi, 2
jle 0x4034f6
add edi, ebp
mov dword [ebx + 0x204], edi
mov ecx, 0xe
lea esi, [esp + 0x84]
lea edi, [ebx + 8]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x40351e
mov eax, dword [esp + 0xc4]
mov dword [ebx + 0x3c], eax
mov ecx, dword [esp + 0x74]
xor eax, eax
mov edx, 0x2b
mov ebx, dword [ecx]
add ecx, 4
add eax, ebx
dec edx
jne 0x403529
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret 0x10