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

Disassembly:
sub esp, 0xc0
mov eax, dword [ecx + 0x71]
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
push esi
push edi
mov edi, dword [eax + 0x5f47]
mov al, byte [esp + 0xdc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x58], edi
mov ecx, dword [edi + 0x7c]
test al, al
mov dword [esp + 0x18], ecx
je 0x415d8b
mov eax, 0x10
jmp 0x415d92
mov ax, word [ebp + 0x36b]
mov dword [esp + 0x38], eax
and eax, 0xffff
mov dword [esp + 0x48], eax
add eax, 0xfffffffe
cmp eax, 0x22
mov dword [esp + 0x6c], eax
ja case.0x415db7.7
xor edx, edx
mov dl, byte [eax + 0x416680]
jmp dword [edx*4 + 0x416668]
fld dword [0x4f0514]
fdiv dword [esp + 0x18]
fadd dword [0x4f0590]
call fcn.004ecc00
fld dword [0x4f0538]
fdiv dword [esp + 0x18]
mov ebx, eax
sub ebx, 2
fadd dword [0x4f0590]
call fcn.004ecc00
add eax, 2
add ebp, 0xf9
mov dword [esp + 0x18], eax
mov esi, 4
mov eax, dword [ebp]
lea edx, [esp + 0xc0]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 8]
push ecx
push eax
jmp 0x415e70
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x64]
fdiv dword [esp + 0x18]
fadd dword [0x4f0590]
call fcn.004ecc00
fld dword [ebp + 0x1a66]
fdiv dword [esp + 0x18]
mov ebx, eax
sub ebx, 2
fadd dword [0x4f0590]
call fcn.004ecc00
add eax, 2
add ebp, 0xf9
mov dword [esp + 0x18], eax
mov esi, 4
mov eax, dword [ebp]
lea edx, [esp + 0xc8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 8]
push ecx
push eax
push edx
mov ecx, edi
call fcn.004afa10
mov ecx, eax
mov eax, dword [ecx]
mov dword [esp + 0x5c], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x60], ecx
lea edx, [ecx + ebx + 1]
sub ecx, ebx
push edx
lea edx, [eax + ebx + 1]
sub eax, ebx
dec ecx
push edx
dec eax
push ecx
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004012b0
mov ecx, dword [edi + 0x78]
mov edx, dword [edi + 0x74]
dec ecx
dec edx
push ecx
push edx
push 0
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.004012b0
lea ecx, [esp + 0xcc]
lea edx, [esp + 0xbc]
push ecx
lea eax, [esp + 0xa8]
push edx
push eax
call fcn.004011d0
add esp, 0x34
jmp 0x415f33
or ebx, 0xffffffff
mov esi, 7
mov dword [esp + 0x18], ebx
jmp 0x415f0b
or ebx, 0xffffffff
mov esi, 0xa
mov dword [esp + 0x18], ebx
jmp 0x415f0b
or ebx, 0xffffffff
mov esi, 4
mov dword [esp + 0x18], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [edi + 0x74]
dec ecx
dec edx
push ecx
push edx
push 0
lea eax, [esp + 0x88]
push 0
push eax
call fcn.004012b0
add esp, 0x14
jmp 0x415f33
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x80]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
cmp esi, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x40], 1
jl 0x415f61
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x84]
fild dword [esp + 0x40]
sub edx, eax
inc edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fdiv st(1)
fadd qword [0x4f0458]
call fcn.004ecc00
mov edx, dword [esp + 0x80]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], ebp
sub eax, edx
inc eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdiv st(1)
fadd qword [0x4f0458]
call fcn.004ecc00
mov esi, eax
mov dword [esp + 0x30], eax
imul esi, ebp
fstp st(0)
test ebp, ebp
jle 0x415ffb
test eax, eax
jle 0x415ffb
lea eax, [esi + esi]
push eax
call fcn.004eccce
mov dword [esp + 0x38], eax
lea eax, [esi + esi]
push eax
call fcn.004eccce
add esp, 8
mov dword [esp + 0x2c], eax
test esi, esi
jle 0x415ffb
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov word [ecx + eax], 0
mov word [eax], 0
add eax, 2
dec esi
jne 0x415fea
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x71]
mov esi, dword [edx + 0x5fb3]
test esi, esi
je 0x41637f
mov al, byte [esi + 0x188e]
test al, al
je 0x416028
mov ecx, esi
call fcn.004be220
mov esi, eax
jmp 0x416377
mov ecx, dword [esp + 0x28]
push esi
call fcn.004155e0
mov cx, word [esi + 0x36b]
mov dword [esp + 0x44], eax
test eax, eax
je 0x416366
cmp cx, 1
je 0x416366
cmp cx, 6
je 0x416366
cmp cx, 7
je 0x416366
cmp cx, 0x23
je 0x416366
lea eax, [esi + 0xf9]
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0xb8], edx
mov ecx, dword [ecx + 8]
push ecx
mov ecx, dword [esp + 0x5c]
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004afa10
mov edi, dword [eax]
mov ecx, dword [esp + 0x74]
mov ebp, dword [eax + 4]
mov eax, edi
sub eax, ecx
mov ecx, dword [esp + 0x40]
cdq
idiv ecx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x20], eax
mov eax, ebp
sub eax, edx
cdq
idiv ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x416366
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jge 0x416366
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x416366
mov edx, dword [esp + 0x30]
cmp eax, edx
jge 0x416366
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
sub ecx, edi
sub eax, ebp
mov edx, ecx
imul edx, ecx
mov ecx, eax
imul ecx, eax
add edx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fsqrt
fadd qword [0x4f0458]
call fcn.004ecc00
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.004be3d0
test ebx, ebx
mov byte [esp + 0x17], al
jle 0x41613d
mov ecx, dword [esp + 0x24]
lea edx, [ebx + 1]
cmp ecx, edx
jg 0x416366
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x41614f
cmp dword [esp + 0x24], ecx
jl 0x416366
cmp word [esp + 0x38], 0x12
jne 0x41615f
test al, al
je 0x416366
mov ecx, dword [esp + 0x28]
push ebp
push edi
call fcn.004154c0
test al, al
je 0x416366
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
imul eax, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x41625e
mov al, byte [esp + 0x17]
mov ebp, dword [esp + 0x38]
test al, al
jne 0x416205
cmp bp, 0x10
jne 0x4161d1
mov ax, word [esi + 0x36b]
and eax, 0xffff
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x71]
call fcn.004d1690
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x4f05a0]
call fcn.004ecc00
jmp 0x41621e
cmp bp, 2
jne 0x416205
mov ax, word [esi + 0x36b]
mov ecx, dword [esp + 0x28]
and eax, 0xffff
mov ecx, dword [ecx + 0x71]
push eax
call fcn.004d1690
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x4f0598]
call fcn.004ecc00
jmp 0x41621e
mov ax, word [esi + 0x36b]
mov edx, dword [esp + 0x28]
and eax, 0xffff
mov ecx, dword [edx + 0x71]
push eax
call fcn.004d1690
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x20], edi
call dword [eax + 0x6c]
fcomp dword [0x4f0594]
fnstsw ax
test ah, 0x41
jne 0x416255
cmp bp, 0x10
je 0x416244
cmp bp, 2
jne 0x416255
fild dword [esp + 0x20]
fmul qword [0x4f0468]
call fcn.004ecc00
mov edi, eax
mov eax, dword [esp + 0x34]
jmp 0x41635e
jge 0x416366
mov edi, dword [esp + 0x28]
push esi
mov ecx, edi
call fcn.00415520
test al, al
je 0x416366
mov al, byte [esp + 0x17]
test al, al
jne 0x41630a
mov ebp, dword [esp + 0x38]
cmp bp, 0x10
jne 0x4162be
mov ax, word [esi + 0x36b]
mov ecx, dword [edi + 0x71]
and eax, 0xffff
push eax
call fcn.004d1690
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x4f05a0]
call fcn.004ecc00
mov edi, eax
mov dword [esp + 0x1c], edi
jmp 0x416329
mov ax, word [esi + 0x36b]
cmp bp, 2
jne 0x4162f4
mov ecx, dword [edi + 0x71]
and eax, 0xffff
push eax
call fcn.004d1690
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x4f0598]
call fcn.004ecc00
mov edi, eax
mov dword [esp + 0x1c], edi
jmp 0x416329
mov ecx, dword [edi + 0x71]
and eax, 0xffff
push eax
call fcn.004d1690
mov edi, eax
mov dword [esp + 0x1c], edi
jmp 0x416329
mov ax, word [esi + 0x36b]
mov ecx, dword [edi + 0x71]
and eax, 0xffff
push eax
call fcn.004d1690
mov ebp, dword [esp + 0x38]
mov edi, eax
mov dword [esp + 0x1c], edi
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x6c]
fcomp dword [0x4f0594]
fnstsw ax
test ah, 0x41
jne 0x41635a
cmp bp, 0x10
je 0x416349
cmp bp, 2
jne 0x41635a
fild dword [esp + 0x1c]
fmul qword [0x4f0468]
call fcn.004ecc00
mov edi, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add word [eax + ecx*2], di
mov ecx, esi
call fcn.004be220
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov esi, eax
test esi, esi
jne 0x416010
lea ecx, [ebp - 2]
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x1c], 0
test ecx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x70], eax
jle 0x416514
mov ecx, dword [esp + 0x30]
lea edx, [ecx - 2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], edx
lea ecx, [ecx + ebp*2]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
lea edi, [ecx + 2]
lea esi, [ecx + ebp*2 + 2]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x44], esi
test edx, edx
jle 0x4164af
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
sub ebp, eax
mov dword [esp + 0x68], edx
mov cx, word [esi + ebp]
mov edx, dword [esp + 0x18]
add cx, word [edi + ebp]
mov eax, dword [esp + 0x30]
add cx, word [edx]
add cx, word [eax]
mov ax, word [esi - 2]
add ax, word [edi - 2]
add ax, word [esi]
add ax, word [edi]
cmp word [esp + 0x38], 0x12
jne 0x416430
mov edx, ecx
and edx, 0xffff
cmp edx, ebx
jg 0x416450
mov edx, ecx
mov ecx, eax
and edx, 0xffff
and ecx, 0xffff
mov ebx, edx
sub ebx, ecx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x1c]
cmp ebx, ecx
jle 0x416469
mov ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0xffff
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
jmp 0x41646d
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
lea eax, [ecx + ecx]
add edx, eax
add esi, eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
add edx, eax
add edi, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x50]
add edx, ecx
dec eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x68], eax
jne 0x4163f8
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
jmp 0x4164b3
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
mov ebp, 2
inc eax
add edi, ebp
add esi, ebp
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x44]
add ecx, 0xfffffffe
add edi, ebp
add esi, ebp
cmp eax, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x44], esi
jl 0x4163ce
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x58]
mov al, byte [esp + 0xdc]
test al, al
je 0x41651a
mov eax, 0x3e8
jmp 0x416555
mov esi, dword [esp + 0x6c]
jmp 0x416502
cmp esi, 0x22
ja case.0x416527.4
xor eax, eax
mov al, byte [esi + 0x4166b8]
jmp dword [eax*4 + 0x4166a4]
mov eax, 0xbb8
jmp 0x416555
mov eax, 0x1f40
jmp 0x416555
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [edx + 0x71]
call fcn.004d1690
shl eax, 1
jmp 0x416555
mov eax, dword [esp + 0x48]
cmp esi, 0x22
ja case.0x416562.2
xor ecx, ecx
mov cl, byte [esi + 0x4166e8]
jmp dword [ecx*4 + 0x4166dc]
sub ebx, dword [esp + 0x1c]
cmp ebx, eax
jle 0x416575
mov bl, 1
jmp 0x416590
xor bl, bl
jmp 0x41662d
test ebx, ebx
jle 0x416575
mov bl, 1
jmp 0x416590
mov bl, byte [esp + 0x17]
test bl, bl
je 0x41662d
mov eax, dword [esp + 0x10]
cdq
idiv ebp
mov eax, dword [esp + 0x10]
mov ecx, edx
cdq
idiv ebp
cmp esi, 0x22
ja case.0x4165ad.1
xor edx, edx
mov dl, byte [esi + 0x416714]
jmp dword [edx*4 + 0x41670c]
mov edx, dword [esp + 0x40]
inc ecx
imul ecx, edx
mov esi, dword [esp + 0x74]
add ecx, esi
inc eax
imul eax, edx
add eax, dword [esp + 0x78]
jmp 0x4165d4
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push eax
lea eax, [esp + 0xb8]
push ecx
push eax
mov ecx, edi
call fcn.004afa90
mov esi, dword [esp + 0xd8]
mov edx, dword [eax]
mov ecx, esi
push 0x16a6
push str.D:DevProjectsJMain1SourceAIComputer.cpp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
call fcn.00401130
lea ecx, [eax + eax*4]
add esp, 8
mov dword [esp + 0x48], ecx
fild dword [esp + 0x48]
fmul dword [0x4f0500]
fadd dword [esi + 4]
fadd dword [0x4f0570]
fstp dword [esi + 4]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x416640
mov edx, eax
push edx
call fcn.004eccc8
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x416651
push eax
call fcn.004eccc8
add esp, 4
xor eax, eax
pop edi
test bl, bl
pop esi
pop ebp
setne al
pop ebx
add esp, 0xc0
ret 0xc