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

Disassembly:
mov eax, dword [0x821094]
sub esp, 0x1e0
test eax, eax
push ebx
push ebp
push esi
push edi
mov ebp, ecx
je 0x4bb754
lea eax, [esp + 0xec]
push 0x104
push eax
push str.D:DevProjectsJMain1SourceVUnit.cpp
mov dword [0x8210d4], 1
call fcn.004e6240
lea ecx, [esp + 0xec]
push 0x745
push ecx
lea edx, [ebp + 4]
push str.Program_runs_to__s__d.
push edx
call fcn.004331c0
add esp, 0x10
mov eax, dword [ebp + 0x3e9]
mov edx, dword [ebp + 0x3af]
mov edi, dword [ebp + 0xc8]
mov ecx, dword [eax + 0x5f2b]
mov ebx, dword [eax + edx*4 + 0x5e30]
mov dword [esp + 0x30], ecx
mov cl, byte [ebp + 0x188e]
test cl, cl
mov dword [esp + 0x2c], ebx
jne 0x4bb812
mov cl, byte [ebp + 0x188f]
test cl, cl
jne 0x4bb812
mov ecx, dword [ebp + 0x379]
test ecx, ecx
jg 0x4bb812
cmp dword [ebp + 0x381], 0x20000000
jge 0x4bb812
mov esi, dword [esp + 0x218]
cmp esi, 0xffffffff
je 0x4bb7c7
mov ecx, esi
and esi, 0xbfffffff
and ecx, 0x40000000
test ecx, ecx
jne 0x4bb7e3
test esi, esi
jl 0x4bb7e3
test edx, edx
jle 0x4bb7e3
mov eax, dword [eax + esi*4 + 0x5e30]
push edx
mov ecx, eax
call fcn.00498cb0
cmp eax, 1
je 0x4bb812
mov cx, word [ebp + 0x385]
test cx, cx
jle 0x4bb825
movsx edx, cx
xor eax, eax
test edx, edx
jle 0x4bb812
lea ecx, [ebp + 0x387]
movsx ebx, word [ecx]
cmp ebx, dword [esp + 0x214]
je 0x4bb821
inc eax
add ecx, 2
cmp eax, edx
jl 0x4bb7fe
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e0
ret 0x2c
mov ebx, dword [esp + 0x2c]
cmp esi, 0xffffffff
je 0x4bb917
mov eax, dword [ebp + 0x381]
test eax, eax
jle 0x4bb842
mov dword [esp + 0x10], 0x62
jmp 0x4bb875
mov ecx, ebp
call fcn.004be400
test al, al
je 0x4bb857
mov dword [esp + 0x10], 0x5a
jmp 0x4bb875
mov eax, dword [ebp + 0xd8]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x10], edx
fld dword [esp + 0x200]
fsub dword [ebp + 0xf9]
fld dword [esp + 0x204]
fsub dword [ebp + 0xfd]
fld dword [esp + 0x208]
fsub dword [ebp + 0x101]
fld st(2)
fmulp st(3)
fld st(0)
fmul st(1)
faddp st(3)
fld st(1)
fmul st(2)
faddp st(3)
fxch st(2)
fsqrt
fxch st(2)
fstp st(0)
fstp st(0)
fild dword [esp + 0x10]
fmul dword [0x4f1f94]
fsubr dword [0x4f0590]
fimul dword [esp + 0x20c]
fcom dword [0x4f04c8]
fnstsw ax
test ah, 0x41
je 0x4bb8e2
fstp st(0)
fld dword [0x4f04c8]
fld dword [esp + 0x210]
fsub st(2)
fxch st(1)
fmulp st(1)
fdiv dword [esp + 0x210]
call fcn.00401572
nop
nop
mov ecx, dword [ebp + 0xc8]
cmp eax, 4
jge 0x4bb90d
mov eax, 4
sub ecx, eax
fstp st(0)
mov dword [ebp + 0xc8], ecx
mov eax, dword [ebp + 0xc8]
test eax, eax
jle 0x4bba5b
cmp eax, 0x1f4
jge 0x4bba5b
mov al, byte [ebp + 0x3db]
test al, al
je 0x4bba5b
mov eax, dword [ebp + 0x78]
lea edx, [esp + 0x84]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x118]
test eax, eax
jne 0x4bc15a
fld dword [esp + 0x90]
fadd dword [esp + 0x84]
fld dword [esp + 0x94]
fadd dword [esp + 0x88]
mov eax, dword [ebp + 0x3e9]
fstp dword [esp + 0x18]
fld dword [esp + 0x98]
fadd dword [esp + 0x8c]
mov ecx, dword [eax + 0x5f3b]
fstp dword [esp + 0x1c]
mov dl, byte [ecx + 0x62]
fmul dword [0x4f05b8]
fld dword [esp + 0x18]
fmul dword [0x4f05b8]
test dl, dl
fstp dword [esp + 0x24]
fld dword [esp + 0x1c]
fmul dword [0x4f05b8]
fstp dword [esp + 0x28]
fadd dword [ebp + 0xf9]
fstp dword [esp + 0x14]
fld dword [esp + 0x24]
fadd dword [ebp + 0xfd]
fstp dword [esp + 0x18]
fld dword [esp + 0x28]
fadd dword [ebp + 0x101]
fstp dword [esp + 0x1c]
je 0x4bba5b
push 0
push 0x3f8ccccd
push 0x40600000
push 0xff000000
push 3
push 0
sub esp, 0xc
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x44]
mov edx, esp
mov dword [esp + 0x48], 0x3e99999a
mov dword [esp + 0x4c], 0
mov dword [edx], ecx
mov ecx, dword [esp + 0x48]
sub esp, 0xc
mov eax, dword [eax + 0x9d]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x44]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x48]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [edx + 8], ecx
mov ecx, eax
call fcn.0049f280
test al, al
je 0x4bc15a
mov eax, dword [ebp + 0xc8]
test eax, eax
jg 0x4bbe06
mov eax, dword [ebp + 0x3af]
cmp esi, eax
je 0x4bbba6
test eax, eax
jle 0x4bbba6
test esi, esi
jle 0x4bbba6
mov edx, dword [ebp + 0x3e9]
push eax
mov ecx, dword [edx + esi*4 + 0x5e30]
call fcn.00498cb0
cmp eax, 1
je 0x4bbba6
mov eax, dword [ebp + 0x3e9]
mov bx, word [ebp + 0x36b]
lea edi, [esp + 0x34]
mov ecx, dword [eax + esi*4 + 0x5e30]
lea esi, [ecx + 0x248a]
mov ecx, 0x14
mov dword [esp + 0x10], esi
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 0xffff
push ecx
mov ecx, eax
call fcn.004d1690
mov ecx, ebp
mov esi, eax
call fcn.004be3e0
test al, al
je 0x4bbb80
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x6c]
fcomp dword [0x4f05b8]
fnstsw ax
test ah, 0x41
jne 0x4bbb80
cmp bx, 0x29
je 0x4bbb80
mov ecx, ebp
call fcn.004be2f0
test eax, eax
jle 0x4bbb2b
cmp bx, 0xd
je 0x4bbb2b
cmp bx, 0xe
je 0x4bbb2b
cmp bx, 0x32
je 0x4bbb2b
cmp bx, 4
jne 0x4bbb80
mov eax, dword [ebp + 0xf2]
cmp eax, 2
jne 0x4bbb4b
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
inc ecx
add eax, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
jmp 0x4bbb93
cmp eax, 1
jne 0x4bbb65
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
inc ecx
add eax, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
jmp 0x4bbb93
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
inc ecx
add eax, esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
jmp 0x4bbb93
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
inc ecx
add eax, esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov ecx, 0x14
lea esi, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
call fcn.004be400
test al, al
jne 0x4bbdb4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bbd17
mov esi, dword [0x4f0140]
call esi
sub eax, dword [0x941ed8]
cmp eax, 0x1388
jb 0x4bbd17
mov eax, dword [ebp + 0x3e9]
mov ecx, dword [ebp + 0x3af]
cmp ecx, dword [eax + 0x5e2c]
jne 0x4bbd17
call esi
mov dword [0x941ed8], eax
mov eax, dword [ebp + 0xf2]
cmp eax, 1
jne 0x4bbc13
lea edx, [esp + 0x9c]
push str.SoundsHeliExp.wav
push edx
jmp 0x4bbc20
lea eax, [esp + 0x9c]
push str.SoundsTankExp.wav
push eax
mov esi, dword [0x4f0138]
call esi
mov eax, dword [ebp + 0x3e9]
push 0x457a0000
push 0x3f800000
lea edx, [ebp + 0xf9]
mov ecx, dword [eax + 0x5e9f]
mov eax, dword [eax + 0x5e9b]
mov ebx, dword [edx]
sub esp, 0xc
mov edi, esp
push ecx
mov ecx, dword [esp + 0x48]
mov dword [edi], ebx
mov ebx, dword [edx + 4]
push eax
lea eax, [esp + 0xb8]
mov edx, dword [edx + 8]
mov dword [edi + 4], ebx
push eax
push str.SoundsJSounds.pck
mov dword [edi + 8], edx
call fcn.00406030
test al, al
je 0x4bc15a
mov ecx, ebp
call fcn.004be3e0
test al, al
jne 0x4bbd13
mov ecx, ebp
call fcn.004be3f0
test al, al
jne 0x4bbd13
mov cl, byte [0x82108c]
xor eax, eax
mov byte [esp + 0x34], cl
mov ecx, 0x13
lea edi, [esp + 0x35]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, ebp
stosb byte es:[edi], al
call fcn.004be420
test al, al
je 0x4bbcca
lea edx, [esp + 0x34]
push str.SoundsH_base_report03.wav
push edx
jmp 0x4bbcdf
mov ecx, ebp
call fcn.004be430
test al, al
je 0x4bbce1
lea eax, [esp + 0x34]
push str.SoundsR_basereport03.wav
push eax
call esi
lea ecx, [esp + 0x34]
push ecx
call dword [0x4f01ac]
test eax, eax
jle 0x4bbd13
mov edx, dword [ebp + 0x3e9]
lea eax, [esp + 0x34]
push eax
push str.SoundsJSounds.pck
mov ecx, dword [edx + 0x5f2b]
call fcn.00405fa0
test al, al
je 0x4bc15a
mov ebx, dword [esp + 0x2c]
mov al, byte [ebp + 0x3db]
mov ecx, dword [esp + 0x21c]
test al, al
mov dword [ebp + 0x1879], ecx
je 0x4bbd6c
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x78]
test al, al
je 0x4bc15a
mov ecx, ebp
call fcn.004be3e0
test al, al
jne 0x4bbd6c
mov ecx, ebp
call fcn.004be3f0
test al, al
jne 0x4bbd6c
mov eax, dword [ebp + 0x3e9]
push 0x3fc00000
push 0xf
mov ecx, dword [eax + 0xb1]
call fcn.00477790
mov ecx, ebp
mov byte [ebp + 0x188e], 1
call fcn.004be430
test al, al
jne 0x4bbd8a
mov dword [ebp + 0x3dd], 0x64
jmp 0x4bbd94
mov dword [ebp + 0x3dd], 5
mov ecx, ebp
call fcn.004be3e0
test al, al
je 0x4bbdbb
cmp dword [ebp + 0xf2], 2
jne 0x4bbdbb
mov edx, dword [ebp]
push 0
mov ecx, ebp
call dword [edx + 0x40]
jmp 0x4bbdbb
mov byte [ebp + 0x188f], 1
mov eax, dword [ebp + 0x3a7]
push 1
push eax
mov ecx, ebx
mov dword [ebp + 0xc8], 0
call fcn.00497d80
test al, al
je 0x4bc15a
mov ecx, dword [ebp + 0x3e9]
push ebp
mov ecx, dword [ecx + 0x5e30]
call fcn.00497a40
test al, al
je 0x4bc15a
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e0
ret 0x2c
cmp eax, edi
jge 0x4bb812
cmp esi, 0xffffffff
je 0x4bb812
mov eax, dword [ebp + 0x3af]
test eax, eax
jle 0x4bb812
cmp esi, eax
je 0x4bb812
push esi
mov ecx, ebx
call fcn.00498cb0
cmp eax, 1
je 0x4bb812
mov al, byte [ebx + 0x96]
test al, al
je 0x4bbe5f
mov edx, dword [esp + 0x214]
mov ecx, ebx
push edx
call fcn.00498ef0
test al, al
je 0x4bc15a
mov eax, dword [ebp + 0x3af]
test eax, eax
jle 0x4bbff4
mov ecx, dword [ebp + 0x3e9]
mov dl, byte [ecx + eax + 0x5e4e]
test dl, dl
jne 0x4bbff4
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
test eax, eax
jge 0x4bbff4
cmp word [ebp + 0x36b], 0x29
je 0x4bbff4
mov ecx, ebp
call fcn.004be3e0
test al, al
je 0x4bbff4
mov ecx, ebp
call fcn.004be3f0
test al, al
jne 0x4bbff4
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x24]
test al, al
jne 0x4bbff4
cmp dword [ebp + 0x363], 0xffffffff
jne 0x4bbff4
mov ecx, dword [esp + 0x214]
push ecx
mov ecx, dword [ebp + 0x3e9]
add ecx, 0x5f4b
call fcn.004be7d0
test eax, eax
je 0x4bbff4
mov cl, byte [eax + 0x188e]
test cl, cl
jne 0x4bbff4
fld dword [ebp + 0xf9]
add eax, 0xf9
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp + 0x20], edx
fsub dword [esp + 0x20]
mov ecx, dword [eax + 4]
fld dword [ebp + 0xfd]
mov edx, dword [eax + 8]
mov dword [esp + 0x24], ecx
fsub dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov ecx, esp
mov eax, dword [ebp]
push 0xffffffffffffffff
fstp dword [esp + 0x34]
fld dword [ebp + 0x101]
fsub dword [esp + 0x2c]
push 2
fst dword [esp + 0x3c]
fmul dword [esp + 0x3c]
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fstp dword [esp + 0x24]
fdiv dword [esp + 0x24]
fld dword [esp + 0x38]
fdiv dword [esp + 0x24]
fstp dword [esp + 0x2c]
fld dword [esp + 0x3c]
fdiv dword [esp + 0x24]
fstp dword [esp + 0x30]
fmul dword [0x4f1718]
fld dword [esp + 0x2c]
fmul dword [0x4f1718]
fstp dword [esp + 0x38]
fld dword [esp + 0x30]
fmul dword [0x4f1718]
fstp dword [esp + 0x3c]
fadd dword [ebp + 0xf9]
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
fadd dword [ebp + 0xfd]
mov edx, dword [esp + 0x28]
mov dword [ecx], edx
fstp dword [esp + 0x2c]
fld dword [esp + 0x3c]
fadd dword [ebp + 0x101]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edx
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
mov dword [ecx + 8], edx
mov ecx, ebp
call dword [eax + 0x1c]
test al, al
je 0x4bc15a
mov eax, dword [ebp + 0x3e9]
mov edx, dword [ebp + 0x3af]
mov ecx, dword [eax + 0x5e2c]
cmp ecx, edx
jne 0x4bb812
mov ecx, dword [eax + 0x5eef]
test ecx, ecx
jg 0x4bb812
mov esi, dword [esp + 0x2c]
mov ebx, dword [0x4f0138]
mov eax, dword [esi + 0x24da]
cmp eax, 0x20
jge 0x4bc049
shl eax, 8
push str._UnderAttack
lea edx, [eax + esi + 0x24de]
push edx
call ebx
inc dword [esi + 0x24da]
lea eax, [ebp + 0xf9]
mov edi, dword [ebp + 0x188a]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov eax, dword [ebp + 0x3e9]
mov dword [eax + 0x5efb], edi
lea edi, [eax + 0x5f07]
mov dword [eax + 0x5f07], ecx
mov dword [edi + 4], edx
mov dword [edi + 8], esi
mov dword [eax + 0x5eef], 0x12c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bb812
mov ecx, dword [ebp + 0x3e9]
mov edx, dword [ebp + 0x3af]
cmp edx, dword [ecx + 0x5e2c]
jne 0x4bb812
mov al, byte [0x82108c]
mov ecx, 0x13
mov byte [esp + 0x34], al
xor eax, eax
lea edi, [esp + 0x35]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, ebp
stosb byte es:[edi], al
call fcn.004be3e0
test al, al
jne 0x4bc101
mov ecx, ebp
call fcn.004be3f0
test al, al
jne 0x4bc101
mov ecx, ebp
call fcn.004be420
test al, al
je 0x4bc0ea
push str.SoundsH_base_report01.wav
jmp 0x4bc11d
mov ecx, ebp
call fcn.004be430
test al, al
je 0x4bc124
lea edx, [esp + 0x34]
push str.SoundsR_basereport01.wav
push edx
jmp 0x4bc122
mov ecx, ebp
call fcn.004be420
test al, al
je 0x4bc118
lea eax, [esp + 0x34]
push str.SoundsH_help.wav
push eax
jmp 0x4bc122
push str.SoundsR_basereport06.wav
lea ecx, [esp + 0x38]
push ecx
call ebx
lea edx, [esp + 0x34]
push edx
call dword [0x4f01ac]
test eax, eax
jle 0x4bb812
mov eax, dword [ebp + 0x3e9]
lea edx, [esp + 0x34]
push edx
push str.SoundsJSounds.pck
mov ecx, dword [eax + 0x5f2b]
call fcn.00405fa0
test al, al
jne 0x4bb812
add ebp, 4
push str.DealDamage__:_Error_occurs.
push ebp
mov dword [0x8210d4], 1
call fcn.004331c0
add esp, 8
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e0
ret 0x2c