Function at 0x403a40
Capabilities:
Parse pe header

Disassembly:
mov eax, dword [0x44f618]
sub esp, 8
push esi
add eax, 1
push eax
push 0x3c
mov esi, ecx
call fcn.00417170
add esp, 8
test eax, eax
jle 0x403a66
xor eax, eax
pop esi
add esp, 8
ret 0x1c
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push edi
mov edi, dword [esp + 0x20]
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 2
jne 0x403e83
push 0xa
push 0x3d
call fcn.00417170
add esp, 8
test eax, eax
jne 0x403b09
mov ebx, dword [esi + edi*4 + 0x194]
cmp dword [ebx + 0x308], 0x15e
jle 0x403b09
mov eax, ebx
mov ecx, dword [eax + 0x300]
sub ecx, 0x46
cmp dword [eax + 0x2fc], ecx
jge 0x403ad1
cmp dword [ebx + 0x2fc], 0x8c
jl 0x4055e4
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x300]
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ecx + 0x2fc], eax
jge 0x403b09
cmp dword [ebx + 0x2fc], 0x8c
jge 0x4055e4
cmp dword [esp + 0x30], 0x2710
jge 0x403b3a
push 0x1e
push 0x3e
call fcn.00417170
add esp, 8
test eax, eax
jne 0x403b3a
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0xfa
jg 0x4052f7
mov ecx, dword [esi + ebp*4 + 0x194]
mov edx, dword [ecx + 0x368]
mov eax, dword [edx + 0x6f4]
cmp eax, 2
je 0x403c2e
cmp eax, 9
je 0x403c2e
cmp eax, 0xa
je 0x403c2e
cmp eax, 0xb
je 0x403c2e
cmp eax, 0x21
je 0x403c2e
cmp eax, 0x22
je 0x403c2e
push 0xf
push 0x40
call fcn.00417170
add esp, 8
test eax, eax
jne 0x403ca1
mov edx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x403ca1
cmp eax, 0xfa
jge 0x403ca1
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x1e
jge 0x403ca1
cmp dword [ecx + 0x308], 0x64
jle 0x403ca1
cmp dword [edx + 0x308], 0xaa
jle 0x403ca1
cmp dword [esp + 0x2c], 0
jne 0x403ca1
cmp dword [esp + 0x20], ebx
jle 0x405f01
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd8], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
push 0xf
push 0x3f
call fcn.00417170
add esp, 8
test eax, eax
jne 0x403ca1
mov edx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x403ca1
cmp eax, 0x1f4
jge 0x403ca1
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x1e
jge 0x403ca1
cmp dword [ecx + 0x308], 0x64
jle 0x403ca1
cmp dword [edx + 0x308], 0xdc
jle 0x403ca1
cmp dword [esp + 0x2c], 0
je 0x403c0e
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x98], 0
je 0x403cbb
cmp dword [ecx + 0x70], 9
jge 0x403e83
mov eax, dword [esi + edi*4 + 0x194]
mov edx, dword [eax + 0x300]
sub edx, 0x46
cmp dword [eax + 0x2fc], edx
jge 0x403ce3
cmp dword [ecx + 0x2fc], 0x8c
jl 0x403e83
mov ebx, dword [esi + edi*4 + 0x194]
mov eax, dword [ebx + 0x300]
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x2fc], eax
jge 0x403d1b
cmp dword [ecx + 0x2fc], 0x8c
jge 0x403e83
cmp dword [esp + 0x34], 0
jne 0x403e83
xor ebp, ebp
lea edx, [esi + 0x194]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edx
cmp ebp, edi
je 0x403e64
cmp byte [esi + ebp + 4], 0
je 0x403e64
mov ebx, dword [edx]
mov eax, dword [ebx + 0x364]
test eax, eax
je 0x403e64
cmp eax, dword [ecx + 0x364]
jne 0x403e64
mov eax, dword [ebx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xfa
mov dword [esp + 0x14], eax
jge 0x403e64
mov eax, dword [ebx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
mov dword [esp + 0x10], eax
jge 0x403e64
cmp dword [ecx + 0x308], 0x15e
jle 0x403e64
mov edx, ebx
mov ebp, dword [edx + 0x300]
sub ebp, 0x5a
cmp dword [edx + 0x2fc], ebp
jge 0x403dd0
mov edx, dword [ebx + 0x2fc]
cmp edx, 0x8c
jl 0x403e09
mov edx, dword [esp + 0x20]
mov ebp, dword [edx]
mov eax, dword [ebp + 0x300]
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x2fc], eax
jge 0x403e60
mov edx, dword [ebx + 0x2fc]
cmp edx, 0x8c
jl 0x403e60
mov eax, dword [esp + 0x10]
test edx, edx
mov ebp, dword [esp + 0x2c]
jle 0x403e64
mov edx, dword [esp + 0x14]
lea ebx, [eax + edx]
mov eax, 0x55555556
imul dword [esp + 0x30]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jge 0x403e64
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
cmp eax, dword [ecx + 0x10]
jle 0x403f67
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xd0], 1
mov edx, dword [esi + edi*4 + 0x194]
mov byte [edx + 0xcf], 0
jmp 0x403f83
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
add ebp, 1
add edx, 4
cmp ebp, 0x14
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edx
jl 0x403d36
mov ebp, dword [esp + 0x1c]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 1
mov ebx, dword [esp + 0x28]
jne 0x4041e4
mov eax, dword [ecx + 0x70]
cmp eax, 0x104
jl 0x404056
cmp eax, 0x121
jg 0x404056
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x404056
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x404056
cmp dword [edx + 0x14], 0
jne 0x403f06
cmp dword [ecx + 0x14], 0
jne 0x403f06
push 3
push 0x41
call fcn.00417170
add esp, 8
test eax, eax
je 0x403f3c
mov ecx, dword [esi + ebp*4 + 0x194]
cmp dword [ecx + 0x14], 0
jge 0x403fd7
mov edx, dword [esi + edi*4 + 0x194]
cmp dword [edx + 0x14], 0
jge 0x403fd7
push 7
push 0x42
call fcn.00417170
add esp, 8
test eax, eax
jne 0x403fd7
mov eax, dword [esi + edi*4 + 0x194]
mov byte [eax + 0xd1], 1
mov ecx, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xca], 0
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
mov byte [eax + 0xd0], 0
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xcf], 1
mov edi, dword [esi + edi*4 + 0x194]
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ecx, dword [edi + 0x10]
cmp eax, ecx
jle 0x403fa6
cmp byte [edi + 0x80], 0
je 0x403fc1
cmp eax, ecx
jge 0x403fb1
cmp byte [edi + 0x80], 1
je 0x403fc1
sub eax, ecx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 5
jge 0x403fc8
mov byte [edi + 0xda], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov edx, dword [esi + ebp*4 + 0x194]
cmp dword [edx + 0x14], 0
jge 0x403ff4
push 5
push 0x43
call fcn.00417170
add esp, 8
test eax, eax
je 0x404004
push 0x1e
push 0x44
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404047
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [ecx + 0x10]
mov edx, dword [eax + 0x10]
cmp ecx, edx
jle 0x404027
cmp byte [eax + 0x80], 0
je 0x404032
cmp ecx, edx
jge 0x404039
cmp byte [eax + 0x80], 1
jne 0x404039
mov byte [eax + 0xd2], 1
mov edx, dword [esi + edi*4 + 0x194]
mov byte [edx + 0xcb], 0
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
push 7
push 0x45
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4040f2
mov edx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jge 0x4040f2
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 8
jge 0x4040f2
cmp dword [ecx + 0x308], 0x96
jle 0x4040f2
push 0xa
push 0x46
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4040c7
cmp ebx, 3
jne 0x404a75
push 3
push 0x47
call fcn.00417170
add esp, 8
test eax, eax
jle 0x4040f2
cmp ebx, 0x10
je 0x404a75
cmp ebx, 8
je 0x404a75
cmp ebx, 0xb
je 0x404a75
push 7
push 0x48
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4041e4
mov edx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x4041e4
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x4041e4
mov ecx, dword [ecx + 0x308]
cmp ecx, 0x4b
jle 0x4041e4
cmp ecx, 0x96
jle 0x4041c7
push 0xa
push 0x49
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404170
cmp ebx, 3
jne 0x404185
push 3
push 0x4a
call fcn.00417170
add esp, 8
test eax, eax
jle 0x4041c7
cmp ebx, 0x10
jne 0x4041c7
mov eax, dword [esi + ebp*4 + 0x194]
mov edi, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x10]
cmp ecx, dword [edi + 0x10]
jle 0x4041b1
mov byte [edi + 0xd8], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov byte [edi + 0xd9], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov edx, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [edx + 0xd7], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 4
jne 0x404361
cmp dword [ecx + 0x308], 0x168
jle 0x40427d
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x40427d
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x46
jge 0x40427d
mov ecx, dword [ecx + 0x2fc]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0xa]
push ecx
push 0x4b
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40427d
mov edx, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [edx + 0xda], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
push 0x2d
push 0x4c
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4042e0
mov edx, dword [esi + ebp*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x4042e0
cmp eax, 0x226
jge 0x4042e0
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x14
jge 0x4042e0
cmp dword [ecx + 0x308], 0xaa
jg 0x403c0e
push 0x1e
push 0x4d
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404361
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x404361
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x404361
cmp eax, 0xa0
jge 0x404361
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x37
jge 0x404361
mov al, byte [ecx + 0x80]
test al, al
jne 0x404353
cmp ebx, dword [esp + 0x20]
jl 0x405d7d
cmp al, 1
jne 0x404361
cmp ebx, dword [esp + 0x20]
jg 0x405d7d
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 5
jne 0x4044ed
cmp dword [ecx + 0x308], 0x1c2
jle 0x404414
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x404414
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x32
jle 0x404414
push 3
push 0x4e
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404414
push 2
push 0x4f
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4043f7
mov eax, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [eax + 0xda], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xdb], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0x46
jle 0x40446e
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x40446e
cmp eax, 0xa0
jge 0x40446e
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 8
jge 0x40446e
push 0xa
push 0x50
call fcn.00417170
add esp, 8
test eax, eax
je 0x404a75
push 0x1e
push 0x51
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4044ed
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x4044ed
mov edx, dword [esi + ebp*4 + 0x194]
mov ebx, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov eax, ebx
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x4044e9
cmp eax, 0xa0
jge 0x4044e9
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x37
jge 0x4044e9
mov al, byte [ecx + 0x80]
test al, al
jne 0x4044dd
cmp ebx, ebp
jg 0x405e75
cmp al, 1
jne 0x4044e9
cmp ebx, ebp
jl 0x405e8b
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 6
jne 0x4045fc
mov ebx, 0x64
cmp dword [ecx + 0x308], ebx
jle 0x40455e
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x50
jle 0x40455e
cmp eax, 0x82
jge 0x40455e
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x1e
jge 0x40455e
push 0xa
push 0x52
call fcn.00417170
add esp, 8
test eax, eax
je 0x404a75
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], ebx
jle 0x4045b0
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x2d
jge 0x4045b0
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 5
jge 0x4045b0
push 3
push 0x53
call fcn.00417170
add esp, 8
test eax, eax
je 0x405a3e
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x70]
mov edx, dword [eax + 0x368]
imul ecx, ecx, 0x178
cmp dword [ecx + edx + 0x7ac], 9
jne 0x4045fc
push 8
push 0x54
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4045fc
mov eax, dword [esi + edi*4 + 0x194]
mov byte [eax + 0xd2], 1
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xcb], 0
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 7
jne 0x40498d
mov eax, dword [ecx + 0x70]
cmp eax, 0x10b
jle 0x40469e
cmp eax, 0x11b
jge 0x40469e
mov eax, dword [esp + 0x28]
cmp eax, 0xc
je 0x404abb
cmp eax, 0xb
je 0x404abb
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jg 0x404abb
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x19
jg 0x404abb
mov al, byte [ecx + 0x80]
test al, al
jne 0x404690
cmp ebx, dword [esp + 0x20]
jl 0x404abb
cmp al, 1
jne 0x40469e
cmp ebx, dword [esp + 0x20]
jg 0x404abb
mov ebx, dword [esp + 0x28]
cmp ebx, 0x12
je 0x4047a4
cmp ebx, 0xe
je 0x4047a4
cmp ebx, 0xc
je 0x40473e
cmp dword [ecx + 0x2fc], 0x46
jle 0x40473e
cmp dword [ecx + 0x308], 0x140
jle 0x40473e
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
mov ebx, eax
add esp, 4
cmp ebx, 0x32
jg 0x404703
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jle 0x40473e
cmp ebx, 0x55
jge 0x40473e
mov eax, dword [ecx + 0x2fc]
cmp eax, dword [edx + 0x2fc]
jle 0x40473e
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x23
jge 0x40473e
push 5
push 0x55
call fcn.00417170
add esp, 8
test eax, eax
je 0x405a3e
mov ebx, dword [esp + 0x28]
cmp ebx, 0xc
je 0x4047a4
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x4047a4
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jle 0x4047a4
cmp eax, 0x172
jge 0x4047a4
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jge 0x4047a4
push 0x14
push 0x56
call fcn.00417170
add esp, 8
test eax, eax
je 0x404a75
push 0x64
push 0x57
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4047e3
mov eax, dword [esi + ebp*4 + 0x194]
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + edi*4 + 0x194]
sub edx, dword [ecx + 0x10]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xf0
jle 0x4047e3
cmp eax, 0x190
jl 0x404a75
cmp ebx, 0x12
je 0x4048a5
cmp ebx, 0xe
je 0x4048a5
cmp ebx, 0xc
je 0x4048a5
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x4048a5
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jle 0x4048a5
cmp eax, 0x118
jge 0x4048a5
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jge 0x4048a5
push 0xf
push 0x58
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4048a5
mov eax, dword [esi + edi*4 + 0x194]
mov cl, byte [eax + 0x80]
test cl, cl
jne 0x40487b
mov edx, dword [esi + ebp*4 + 0x194]
mov ebx, dword [eax + 0x10]
cmp ebx, dword [edx + 0x10]
jl 0x40488f
cmp cl, 1
jne 0x4048a5
mov ecx, dword [esi + ebp*4 + 0x194]
mov edx, dword [eax + 0x10]
cmp edx, dword [ecx + 0x10]
jle 0x4048a5
pop edi
pop ebp
pop ebx
mov byte [eax + 0xdb], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x70]
cmp eax, 0xff
jl 0x40498d
cmp eax, 0x105
jg 0x40498d
mov dl, byte [ecx + 0x80]
test dl, dl
jne 0x4048f8
mov ebx, dword [esi + ebp*4 + 0x194]
mov ebx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x10]
add ebx, 0x78
cmp eax, ebx
jg 0x404abb
mov ebx, dword [0x44f604]
add ebx, 0xffffffe2
cmp eax, ebx
jg 0x404abb
cmp dl, 1
jne 0x40491e
mov edx, dword [esi + ebp*4 + 0x194]
mov edx, dword [edx + 0x10]
mov eax, dword [ecx + 0x10]
sub edx, 0x78
cmp eax, edx
jl 0x404abb
cmp eax, 0x1e
jl 0x404abb
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x18]
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x20], eax
sub eax, ebx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x46
jg 0x404abb
cmp dword [0x44f608], 1
je 0x404abb
mov al, byte [ecx + 0x80]
test al, al
jne 0x404968
mov eax, dword [ecx + 0x10]
cmp eax, dword [edx + 0x10]
jl 0x40497c
mov al, byte [ecx + 0x80]
cmp al, 1
jne 0x404aa5
mov eax, dword [ecx + 0x10]
cmp eax, dword [edx + 0x10]
jle 0x404aa5
cmp dword [esp + 0x20], ebx
jle 0x404aaf
mov byte [ecx + 0xce], 1
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 8
jne 0x404c05
cmp dword [esp + 0x28], 0xd
je 0x404ae6
mov ebx, 0xc8
cmp dword [ecx + 0x308], ebx
jle 0x404a05
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x190
jge 0x404a05
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xaa
jge 0x404a05
push 0xfa
push 0x59
call fcn.00417170
add esp, 8
test eax, eax
je 0x404a75
cmp dword [esp + 0x28], 0xe
je 0x404ba5
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], ebx
jle 0x404ae6
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jle 0x404ae6
cmp eax, 0x118
jge 0x404ae6
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x41
jge 0x404ae6
push 0xf
push 0x5a
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404ae6
mov eax, dword [esi + ebp*4 + 0x194]
mov edi, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x10]
cmp ecx, dword [edi + 0x10]
jle 0x406175
mov byte [edi + 0xd8], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
cmp dword [esp + 0x20], ebx
jl 0x404986
mov byte [ecx + 0xcd], 1
jmp 0x40498d
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xd3], 1
mov edx, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [edx + 0xcc], 0
mov eax, 1
pop esi
add esp, 8
ret 0x1c
cmp dword [esp + 0x28], 0xe
je 0x404ba5
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0x140
jle 0x404ba5
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
mov ebx, eax
add esp, 4
cmp ebx, 0x32
jg 0x404b40
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 7
jg 0x404b40
cmp dword [esp + 0x28], 0xd
jne 0x404ba5
cmp ebx, 0x7d
jge 0x404ba5
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x19
jge 0x404ba5
push 3
push 0x5b
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404ba5
mov eax, dword [esi + edi*4 + 0x194]
mov cl, byte [eax + 0x80]
test cl, cl
jne 0x404b8d
mov edx, dword [esi + ebp*4 + 0x194]
mov ebx, dword [eax + 0x10]
cmp ebx, dword [edx + 0x10]
jl 0x405a45
cmp cl, 1
jne 0x404ba5
mov ecx, dword [esi + ebp*4 + 0x194]
mov edx, dword [eax + 0x10]
cmp edx, dword [ecx + 0x10]
jg 0x405a45
push 0x32
push 0x5c
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404c05
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x98], eax
jne 0x404c05
cmp dword [ecx + 0x308], 0xc8
jle 0x404c05
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xc8
jle 0x404c05
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x32
jg 0x4043fe
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 0xb
jne 0x404dae
cmp dword [ecx + 0x308], 0x96
jle 0x404cc0
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x118
jge 0x404cc0
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x1e
jge 0x404cc0
push 0xa
push 0x5d
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404cc0
mov edx, dword [esi + edi*4 + 0x194]
mov bl, byte [edx + 0x80]
test bl, bl
jne 0x404c92
mov ecx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x10]
cmp ecx, eax
jg 0x404caa
cmp bl, 1
jne 0x404cc0
mov ecx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x10]
cmp ecx, eax
jge 0x404cc0
jle 0x404cb1
mov byte [edx + 0xd7], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
mov edx, dword [eax + 0x70]
mov eax, dword [eax + 0x368]
imul edx, edx, 0x178
cmp dword [edx + eax + 0x7d0], 0x122
jne 0x404d0c
mov ecx, dword [esi + ebp*4 + 0x194]
cmp dword [ecx + 0x14], 0
jge 0x404d0c
mov edx, dword [esi + edi*4 + 0x194]
mov byte [edx + 0xcb], 0
mov eax, dword [esi + edi*4 + 0x194]
mov byte [eax + 0xd2], 1
push 5
push 0x5e
call fcn.00417170
add esp, 8
test eax, eax
je 0x404d2e
mov eax, dword [esp + 0x28]
cmp eax, 0x10
je 0x404d2e
cmp eax, 8
jne 0x404dae
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esi + ecx*4 + 0x194]
mov ebp, dword [esi + edi*4 + 0x194]
mov edx, dword [ebx + 0x10]
fld qword [ebp + 0x40]
mov dword [esp + 0x20], edx
call fcn.004450d0
sub eax, dword [ebp + 0x10]
add eax, dword [esp + 0x20]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x404dae
mov eax, dword [ebx + 0x18]
mov ecx, ebp
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x404dae
cmp dword [ecx + 0x308], 0xc8
jle 0x404dae
mov al, byte [ecx + 0x80]
test al, al
jne 0x404d9d
mov edx, dword [esp + 0x20]
cmp dword [ecx + 0x10], edx
jl 0x4060e1
cmp al, 1
jne 0x404dae
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x10], eax
jg 0x4060e1
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 0xa
jne 0x40513a
cmp dword [ecx + 0x308], 0x64
mov ebp, dword [esp + 0x1c]
jle 0x404e6a
mov edx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x118
jge 0x404e6a
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x19
jge 0x404e6a
push 0xa
push 0x5f
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404e6a
mov edx, dword [esi + edi*4 + 0x194]
mov bl, byte [edx + 0x80]
test bl, bl
jne 0x404e3c
mov ecx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x10]
cmp ecx, eax
jg 0x404e54
cmp bl, 1
jne 0x404e6a
mov ecx, dword [esi + ebp*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x10]
cmp ecx, eax
jge 0x404e6a
jle 0x404e5b
mov byte [edx + 0xd7], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x70], 0x10f
jne 0x404ea4
mov edx, dword [esi + ebp*4 + 0x194]
cmp dword [edx + 0x14], 0
jge 0x404ea4
mov ebx, dword [esp + 0x28]
cmp ebx, 0xc
jne 0x404ea8
pop edi
pop ebp
mov byte [eax + 0xd6], 3
lea eax, [ebx - 0xb]
pop ebx
pop esi
add esp, 8
ret 0x1c
mov ebx, dword [esp + 0x28]
push 0xa
push 0x60
call fcn.00417170
add esp, 8
test eax, eax
je 0x404ec2
cmp ebx, 0x10
je 0x404ec2
cmp ebx, 8
jne 0x404f36
mov eax, dword [esp + 0x1c]
mov ebx, dword [esi + eax*4 + 0x194]
mov ebp, dword [esi + edi*4 + 0x194]
mov ecx, dword [ebx + 0x10]
fld qword [ebp + 0x40]
mov dword [esp + 0x20], ecx
call fcn.004450d0
sub eax, dword [ebp + 0x10]
add eax, dword [esp + 0x20]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x50
jge 0x404f36
mov edx, dword [ebx + 0x18]
mov ecx, ebp
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x404f36
mov al, byte [ecx + 0x80]
test al, al
jne 0x404f25
mov edx, dword [esp + 0x20]
cmp dword [ecx + 0x10], edx
jl 0x4060e1
cmp al, 1
jne 0x404f36
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x10], eax
jg 0x4060e1
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x404fd7
mov ebx, dword [esp + 0x1c]
mov edx, dword [esi + ebx*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jle 0x404fd7
cmp eax, 0x118
jge 0x404fd7
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x41
jge 0x404fd7
push 0xf
push 0x61
call fcn.00417170
add esp, 8
test eax, eax
je 0x4053de
push 4
push 0x62
call fcn.00417170
add esp, 8
test eax, eax
jne 0x404fd7
mov eax, dword [esp + 0x28]
cmp eax, 0x10
je 0x4053de
cmp eax, 8
je 0x4053de
cmp eax, 0xc
jne 0x404fd7
mov eax, dword [esi + ebx*4 + 0x194]
cmp dword [eax + 0x14], 0xffffffd8
jl 0x4053de
mov eax, dword [esi + edi*4 + 0x194]
mov eax, dword [eax + 0x2fc]
cmp eax, 0xfa
jge 0x4050f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + ecx*4 + 0x194]
mov ecx, dword [edx + 0x2fc]
add ecx, 0x32
cmp eax, ecx
jge 0x4050f0
push 0x14
push 0x63
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4050f0
mov ebx, dword [esi + edi*4 + 0x194]
cmp dword [ebx + 0x308], 0x4b
jle 0x4050f0
lea edx, [esi + 0x194]
mov dword [esp + 0x20], 0xffffffff
xor ebp, ebp
mov dword [esp + 0x2c], edx
cmp ebp, edi
je 0x4050bb
cmp byte [esi + ebp + 4], 0
je 0x4050bb
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov ecx, dword [edx + 0x368]
cmp dword [ecx + 0x6f8], 0
jne 0x4050bb
mov eax, dword [edx + 0x364]
cmp eax, dword [ebx + 0x364]
jne 0x4050bb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + ecx*4 + 0x194]
mov ecx, dword [edx + 0x2fc]
cmp ecx, dword [eax + 0x2fc]
jle 0x4050bb
mov eax, dword [edx + 0x18]
sub eax, dword [ebx + 0x18]
push eax
call fcn.004034e0
mov edx, dword [edx + 0x10]
sub edx, dword [ebx + 0x10]
mov ecx, eax
push edx
call fcn.004034e0
add ecx, eax
add esp, 8
cmp ecx, dword [esp + 0x20]
jle 0x4050bb
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ecx
add dword [esp + 0x2c], 4
add ebp, 1
cmp ebp, 0x190
jl 0x405047
cmp dword [esp + 0x14], 0xffffffff
je 0x4050f0
cmp dword [esp + 0x20], 0x12c
jle 0x4050f0
cmp dword [ebx + 0x98], 0
jne 0x4050f0
mov byte [ebx + 0xdb], 3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + eax*4 + 0x194]
mov edx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x2fc]
cmp eax, dword [ecx + 0x2fc]
jle 0x40513a
push 0x46
push 0x64
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40513a
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x1f4
jle 0x40513a
mov byte [eax + 0xda], 3
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 9
jne 0x40530d
push 0xa
push 0x65
call fcn.00417170
add esp, 8
test eax, eax
je 0x405176
mov eax, dword [esp + 0x28]
cmp eax, 0x10
je 0x405176
cmp eax, 8
jne 0x4051ff
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + ebx*4 + 0x194]
mov ebp, dword [esi + edi*4 + 0x194]
mov eax, dword [eax + 0x10]
fld qword [ebp + 0x40]
mov dword [esp + 0x20], eax
call fcn.004450d0
sub eax, dword [ebp + 0x10]
add eax, dword [esp + 0x20]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x78
jge 0x405203
mov eax, dword [esi + ebx*4 + 0x194]
mov edx, dword [eax + 0x18]
mov ecx, ebp
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x405203
mov al, byte [ecx + 0x80]
test al, al
jne 0x4051dc
mov edx, dword [esp + 0x20]
cmp dword [ecx + 0x10], edx
jl 0x4051e9
cmp al, 1
jne 0x405203
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x10], eax
jle 0x405203
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd7], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp eax, 0x12
je 0x405273
cmp eax, 0xe
je 0x405273
cmp eax, 0xc
je 0x405273
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0xc8
jle 0x405273
mov edx, dword [esi + ebx*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x4b
jle 0x405273
cmp eax, 0x172
jge 0x405273
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jge 0x405273
push 0xd
push 0x66
call fcn.00417170
add esp, 8
test eax, eax
je 0x4053de
mov eax, dword [esi + ebx*4 + 0x194]
mov eax, dword [eax + 0x2fc]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x28
push eax
push 0x67
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4052ca
mov ecx, dword [esi + ebx*4 + 0x194]
mov edx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x10]
sub eax, dword [edx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jle 0x4052ca
cmp eax, 0x190
jl 0x4053de
cmp dword [esp + 0x30], 0x2710
jge 0x405311
push 0x1e
push 0x68
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405311
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x96
jle 0x405311
pop edi
pop ebp
pop ebx
mov byte [eax + 0xd6], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x368]
cmp dword [eax + 0x6f4], 0x20
mov ebp, dword [esp + 0x28]
jne 0x405498
cmp ebp, 0x12
je 0x40538b
cmp ebp, 0xe
je 0x40538b
cmp ebp, 0xc
je 0x40538b
cmp dword [ecx + 0x308], 0xc8
jle 0x40538b
mov edx, dword [esi + ebx*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x10e
jge 0x40538b
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jge 0x40538b
push 0x3c
push 0x69
call fcn.00417170
add esp, 8
test eax, eax
je 0x4053de
mov eax, dword [esi + ebx*4 + 0x194]
mov eax, dword [eax + 0x2fc]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x28
push eax
push 0x6a
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40540e
mov ecx, dword [esi + ebx*4 + 0x194]
mov edx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x10]
sub eax, dword [edx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jle 0x40540e
cmp eax, 0x190
jge 0x40540e
mov ecx, dword [esi + ebx*4 + 0x194]
mov edi, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x10]
cmp edx, dword [edi + 0x10]
jle 0x406175
mov byte [edi + 0xd8], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + ebx*4 + 0x194]
mov edx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x10]
sub eax, dword [edx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jge 0x405498
mov ecx, dword [ecx + 0x18]
sub ecx, dword [edx + 0x18]
push ecx
call fcn.004034e0
add esp, 4
cmp eax, 0x28
jge 0x405498
push 0xf
push 0x6b
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405498
mov edx, dword [esi + ebx*4 + 0x194]
mov edi, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
cmp eax, dword [edi + 0x10]
jle 0x405482
mov byte [edi + 0xd4], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov byte [edi + 0xd5], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 0x21
jne 0x405550
push 5
push 0x6c
call fcn.00417170
add esp, 8
test eax, eax
je 0x4054d0
cmp ebp, 0x10
je 0x4054d0
cmp ebp, 8
jne 0x405550
mov eax, dword [esp + 0x1c]
mov ebx, dword [esi + eax*4 + 0x194]
mov ebp, dword [esi + edi*4 + 0x194]
mov ecx, dword [ebx + 0x10]
fld qword [ebp + 0x40]
mov dword [esp + 0x20], ecx
call fcn.004450d0
sub eax, dword [ebp + 0x10]
add eax, dword [esp + 0x20]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3c
jge 0x405550
mov edx, dword [ebx + 0x18]
mov ecx, ebp
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x405550
cmp dword [ecx + 0x308], 0x96
jle 0x405550
mov al, byte [ecx + 0x80]
test al, al
jne 0x40553f
mov edx, dword [esp + 0x20]
cmp dword [ecx + 0x10], edx
jl 0x4060e1
cmp al, 1
jne 0x405550
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x10], eax
jg 0x4060e1
mov ebp, dword [esi + edi*4 + 0x194]
mov ecx, dword [ebp + 0x368]
cmp dword [ecx + 0x6f4], 0x22
jne 0x405761
push 0xa
push 0x6d
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4055fa
mov ebx, dword [esi + edi*4 + 0x194]
cmp dword [ebx + 0x308], 0x15e
jle 0x4055fa
mov eax, ebx
mov edx, dword [eax + 0x300]
sub edx, 0x46
cmp dword [eax + 0x2fc], edx
jge 0x4055b0
cmp dword [ebx + 0x2fc], 0x8c
jl 0x4055e4
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x300]
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ecx + 0x2fc], eax
jge 0x4055fa
cmp dword [ebx + 0x2fc], 0x8c
jl 0x4055fa
pop edi
pop ebp
mov byte [ebx + 0xdb], 3
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ebp, dword [esi + edi*4 + 0x194]
cmp dword [ebp + 0x98], 0
je 0x405614
cmp dword [ebp + 0x70], 9
jge 0x405761
mov eax, dword [ebp + 0x300]
mov ecx, dword [ebp + 0x2fc]
lea edx, [eax - 0x46]
cmp ecx, edx
jge 0x405633
cmp ecx, 0x8c
jl 0x405761
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x405656
cmp ecx, 0x8c
jge 0x405761
cmp dword [esp + 0x34], 0
jne 0x405761
lea ecx, [esi + 0x194]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x2c], edi
je 0x405748
mov edx, dword [esp + 0x2c]
cmp byte [edx + esi + 4], 0
je 0x405748
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x364]
test eax, eax
je 0x405748
cmp eax, dword [ebp + 0x364]
jne 0x405748
mov edx, dword [ecx + 0x10]
sub edx, dword [ebp + 0x10]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xfa
mov dword [esp + 0x20], eax
jge 0x405748
mov eax, dword [ecx + 0x18]
sub eax, dword [ebp + 0x18]
push eax
call fcn.004034e0
mov ebx, eax
add esp, 4
cmp ebx, 0x3c
jge 0x405748
cmp dword [ebp + 0x308], 0x15e
jle 0x405748
mov eax, dword [ecx + 0x300]
mov ecx, dword [ecx + 0x2fc]
lea edx, [eax - 0x5a]
cmp ecx, edx
jge 0x405707
cmp ecx, 0x8c
jl 0x405726
lea edx, [eax + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x405748
cmp ecx, 0x8c
jl 0x405748
test ecx, ecx
jle 0x405748
mov ecx, dword [esp + 0x20]
mov eax, 0x55555556
imul dword [esp + 0x30]
mov eax, edx
shr eax, 0x1f
add ebx, ecx
add eax, edx
cmp ebx, eax
jl 0x40587c
mov eax, dword [esp + 0x2c]
add dword [esp + 0x34], 4
add eax, 1
cmp eax, 0x14
mov dword [esp + 0x2c], eax
jl 0x405673
mov edx, dword [ebp + 0x368]
cmp dword [edx + 0x6f4], 0x32
jne 0x405913
push 7
push 0x6e
call fcn.00417170
mov ebx, dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x405807
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x1f4
jge 0x405807
cmp eax, 0x5a
jle 0x405807
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 4
jge 0x405807
cmp dword [ecx + 0x308], 0x96
jle 0x405807
mov edx, dword [edx + 0x70]
cmp edx, 0x107
je 0x4057f2
cmp edx, 0x108
jne 0x405e6f
mov byte [ecx + 0xca], 0
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xd1], 1
push 7
push 0x6f
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405917
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x405917
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x405917
cmp dword [ecx + 0x308], 0x4b
jle 0x405917
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd7], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + ecx*4 + 0x194]
mov eax, dword [edx + 0x10]
cmp eax, dword [ebp + 0x10]
jle 0x4058a6
mov byte [ebp + 0xd0], 1
mov ecx, dword [esi + edi*4 + 0x194]
mov byte [ecx + 0xcf], 0
jmp 0x4058bb
mov byte [ebp + 0xd0], 0
mov edx, dword [esi + edi*4 + 0x194]
mov byte [edx + 0xcf], 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + eax*4 + 0x194]
mov edi, dword [esi + edi*4 + 0x194]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edi + 0x10]
cmp eax, ecx
jle 0x4058e2
cmp byte [edi + 0x80], 0
je 0x4058fd
cmp eax, ecx
jge 0x4058ed
cmp byte [edi + 0x80], 1
je 0x4058fd
sub eax, ecx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 5
jge 0x405904
mov byte [edi + 0xda], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
cmp dword [ecx + 0x6f4], 0x23
jne 0x40598d
push 7
push 0x70
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40598d
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x28a
jge 0x40598d
cmp eax, 0x28
jle 0x40598d
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 4
jge 0x40598d
cmp dword [ecx + 0x308], 0x78
jg 0x405e6f
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
cmp dword [ecx + 0x6f4], 0x24
jne 0x405abc
cmp dword [eax + 0x308], 0xc8
jle 0x405a5b
push 5
push 0x71
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405a5b
xor ecx, ecx
lea ebx, [esi + 0x194]
cmp byte [esi + ecx + 4], 1
jne 0x405a24
mov eax, dword [ebx]
mov edx, dword [eax + 0x368]
cmp dword [edx + 0x6f8], 0
jne 0x405a24
mov edx, dword [esi + edi*4 + 0x194]
mov ebp, dword [eax + 0x364]
cmp ebp, dword [edx + 0x364]
jne 0x405a24
mov edx, dword [eax + 0x300]
mov eax, dword [eax + 0x2fc]
lea ebp, [edx - 0xc8]
cmp eax, ebp
jl 0x405a3e
cmp eax, 0xc8
jge 0x405a24
add edx, 0xffffff9c
cmp eax, edx
jl 0x405a3e
add ecx, 1
add ebx, 4
cmp ecx, 0x64
jl 0x4059d3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [eax + 0xda], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
cmp dword [ecx + 0x308], 0x104
jle 0x405abc
push 0xa
push 0x72
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405abc
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x28a
jge 0x405abc
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xf0
jl 0x4060e1
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
cmp dword [ecx + 0x6f4], 0x26
jne 0x405c1d
cmp dword [eax + 0x308], 0x96
jle 0x405b57
push 5
push 0x73
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405b57
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xfa
jge 0x405b57
cmp eax, 0x82
jle 0x405b57
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jge 0x405b57
cmp dword [esp + 0x20], ebp
jle 0x405f01
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd8], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
mov ebp, 0xc8
cmp dword [eax + 0x308], ebp
jle 0x405bbf
push 0xa
push 0x74
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405bbf
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jge 0x405bbf
mov edx, dword [edx + 0x10]
cmp edx, dword [ecx + 0x10]
jle 0x405e8b
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd4], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], ebp
jle 0x405c1d
push 0xa
push 0x75
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405c1d
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, ebp
jg 0x405df5
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xfa
jl 0x405df5
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
cmp dword [ecx + 0x6f4], 0x27
jne 0x405d0d
cmp dword [eax + 0x308], 0x64
jle 0x405cab
push 3
push 0x76
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405cab
mov eax, dword [esi + ebx*4 + 0x194]
mov ebp, dword [eax + 0x10]
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x10]
mov eax, ebp
sub eax, edx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x78
jge 0x405cab
mov al, byte [ecx + 0x80]
test al, al
jne 0x405c84
cmp edx, ebp
jl 0x405c8c
cmp al, 1
jne 0x405cab
cmp edx, ebp
jle 0x405cab
mov eax, dword [esi + ebx*4 + 0x194]
mov edx, dword [eax + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jl 0x405866
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x64
jle 0x405d0d
push 7
push 0x77
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405d0d
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xfa
jge 0x405d0d
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jl 0x405e6f
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
cmp dword [ecx + 0x6f4], 0x34
jne 0x405fc2
cmp dword [esp + 0x28], 3
jne 0x405d93
cmp dword [eax + 0x308], 0x7d
jle 0x405d93
push 0xa
push 0x78
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405d93
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x78
jge 0x405d93
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xa
jge 0x405d93
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xdc], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x7d
jle 0x405e0b
push 5
push 0x7b
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405e0b
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x405e0b
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x1e
jge 0x405e0b
cmp dword [esp + 0x20], ebp
jle 0x405dfc
mov byte [ecx + 0xda], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x7d
jle 0x405ea1
push 0xe
push 0x7c
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405ea1
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
sub eax, ebp
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x2bc
jge 0x405ea1
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x96
jge 0x405ea1
cmp dword [esp + 0x20], ebp
jle 0x405e8b
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd4], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd5], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], 0x7d
jle 0x405f17
push 5
push 0x7d
call fcn.00417170
add esp, 8
test eax, eax
jne 0x405f17
mov ebx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ebx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0x14
jge 0x405f17
mov eax, dword [ebx + 0x10]
cmp eax, dword [ecx + 0x10]
jle 0x405f01
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd8], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd9], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
push 5
push 0x7e
call fcn.00417170
add esp, 8
test eax, eax
je 0x405f39
mov eax, dword [esp + 0x28]
cmp eax, 0x10
je 0x405f39
cmp eax, 8
jne 0x405fc2
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esi + ecx*4 + 0x194]
mov ebp, dword [esi + edi*4 + 0x194]
mov edx, dword [ebx + 0x10]
fld qword [ebp + 0x40]
mov dword [esp + 0x20], edx
call fcn.004450d0
sub eax, dword [ebp + 0x10]
add eax, dword [esp + 0x20]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x64
jge 0x405fc2
mov eax, dword [ebx + 0x18]
sub eax, dword [ebp + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 7
jge 0x405fc2
cmp dword [ebp + 0x308], 0x64
jge 0x405fc2
mov al, byte [ebp + 0x80]
test al, al
jne 0x405f9f
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [esp + 0x20]
jl 0x405fac
cmp al, 1
jne 0x405fc2
mov eax, dword [ebp + 0x10]
cmp eax, dword [esp + 0x20]
jle 0x405fc2
pop edi
mov byte [ebp + 0xd6], 3
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ecx, dword [esi + edi*4 + 0x194]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f4], 0x33
jne 0x40618b
mov eax, dword [ecx + 0x70]
cmp eax, 0x109
jle 0x40603f
cmp eax, 0x118
jge 0x40603f
mov ebx, dword [esp + 0x1c]
mov edx, dword [esi + ebx*4 + 0x194]
mov eax, dword [edx + 0x18]
sub eax, dword [ecx + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xd
jg 0x40601b
mov edx, dword [edx + 0x368]
cmp dword [edx + 0x6f8], 0
je 0x406043
mov byte [ecx + 0xcc], 0
mov eax, dword [esi + edi*4 + 0x194]
pop edi
pop ebp
pop ebx
mov byte [eax + 0xd3], 1
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov ebx, dword [esp + 0x1c]
mov ebp, 0x12c
cmp dword [ecx + 0x308], ebp
jle 0x40609b
push 0xa
push 0x7f
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40609b
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, ebp
jge 0x40609b
mov edx, dword [edx + 0x18]
sub edx, dword [ecx + 0x18]
push edx
call fcn.004034e0
add esp, 4
cmp eax, 0xc8
jl 0x405df5
mov eax, dword [esi + edi*4 + 0x194]
cmp dword [eax + 0x308], ebp
jle 0x4060f7
push 0xa
push 0x80
call fcn.00417170
add esp, 8
test eax, eax
jne 0x4060f7
mov edx, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + edi*4 + 0x194]
mov eax, dword [edx + 0x10]
sub eax, dword [ecx + 0x10]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x3b6
jge 0x4060f7
pop edi
pop ebp
pop ebx
mov byte [ecx + 0xd6], 3
mov eax, 1
pop esi
add esp, 8
ret 0x1c
push 5
push 0x81
call fcn.00417170
add esp, 8
test eax, eax
jne 0x40618b
mov edi, dword [esi + edi*4 + 0x194]
cmp dword [edi + 0x308], 0xfa
jle 0x40618b
mov esi, dword [esi + ebx*4 + 0x194]
mov ecx, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
mov eax, ecx
sub eax, edx
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0x4b0
jge 0x40618b
cmp eax, 0x28
jle 0x40618b
mov eax, dword [esi + 0x18]
sub eax, dword [edi + 0x18]
push eax
call fcn.004034e0
add esp, 4
cmp eax, 0xd
jge 0x40618b
cmp ecx, edx
jle 0x406175
mov byte [edi + 0xd8], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
mov byte [edi + 0xd9], 3
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret 0x1c
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret 0x1c