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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x1d8
xor esi, esi
push str.DATA
call fcn.0048e030
pop ecx
push 0x69db78
push 0xd6d8
push 0x7ffee0
push str.WEAPON.DAT
call fcn.0048dfb0
mov ebx, eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0x18], eax
add esp, 0x10
add dword [esp + 4], 8
add dword [esp + 8], 4
jmp 0x5d56fb
xor edx, edx
mov ebp, ebx
jmp 0x5d52c2
mov al, byte [esi + 0x7ffee0]
inc esi
mov byte [esp + edx + 0x1c], al
inc edx
cmp byte [esi + 0x7ffee0], 0xa
je 0x5d52cf
cmp esi, ebp
jb 0x5d52b6
inc esi
xor eax, eax
mov byte [esp + edx + 0x1c], 0
jmp 0x5d52e1
inc eax
mov dl, byte [esp + eax + 0x1c]
cmp dl, 0x20
ja 0x5d52ee
test dl, dl
jne 0x5d52e0
test dl, dl
je 0x5d56fb
cmp dl, 0x23
je 0x5d56fb
mov dword [esp + 0x1a0], 0
mov ecx, dword [esp + 0x1a0]
mov edi, ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x18c], 0
mov ebp, edi
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x194], ebp
mov ebp, ecx
mov dword [esp + 0x198], edi
mov edx, edi
mov edi, ebp
mov dword [esp + 0x184], ebp
mov dword [esp + 0x188], ecx
lea ebp, [esp + 0x1c0]
mov ecx, edi
push ebp
mov dword [esp + 0x194], edx
lea ebp, [esp + 0x1c0]
mov dword [esp + 0x184], edi
lea edi, [esp + 0x1cc]
mov dword [esp + 0x180], ecx
lea ecx, [esp + 0x1c8]
lea edx, [esp + 0x190]
push edx
push edi
lea edi, [esp + 0x1c0]
push ecx
lea ecx, [esp + 0x1c0]
push ebp
lea ebp, [esp + 0x1c0]
lea edx, [esp + 0x1cc]
push edx
mov dword [esp + 0x1e4], 0
lea edx, [esp + 0x1c0]
push edi
lea edi, [esp + 0x1c0]
push ecx
lea ecx, [esp + 0x17c]
push ebp
lea ebp, [esp + 0x1f0]
push edx
lea edx, [esp + 0x1c8]
push edi
lea edi, [esp + 0x1c8]
push ecx
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x14c], 0
push dword [esp + 0x34]
push dword [esp + 0x3c]
push ebp
lea ebp, [esp + 0x1d0]
push edx
push edi
lea edi, [esp + 0x1c8]
push ecx
lea ecx, [esp + 0x1c8]
push ebp
lea ebp, [esp + 0x1c8]
lea edx, [esp + 0x1d4]
push edx
push edi
push ecx
push ebp
lea ebp, [esp + 0x78]
mov byte [esp + 0x198], 0
add ebp, eax
lea edx, [esp + 0x1ec]
lea ecx, [esp + 0x178]
lea edi, [esp + 0x198]
push edx
push edi
push ecx
mov dword [esp + 0x238], 0
push str._s__s__f__d__d__d__d__f__f__f__f__f__f__f__s__f__f__f__f__f__f__f__d__d__x__d
push ebp
mov dword [esp + 0x244], 0
call fcn.0064a730
lea eax, [esp + 0x18c]
add esp, 0x70
push 0xd
push str.ENDWEAPONDATA
push eax
call fcn.00642650
add esp, 0xc
test eax, eax
jne 0x5d54a0
add esp, 0x1d8
pop ebp
pop edi
pop esi
pop ebx
ret
xor edi, edi
lea eax, [esp + 0x11c]
mov edx, dword [edi*4 + 0x69d99c]
push edx
push eax
call fcn.00642620
test eax, eax
pop ecx
pop ecx
je 0x5d54c5
inc edi
cmp edi, 0x25
jl 0x5d54a2
xor edi, edi
lea eax, [esp + 0x13c]
push eax
call fcn.005d5170
pop ecx
mov ecx, edi
lea ebp, [ecx + ecx*2]
shl ebp, 5
lea ebp, [ebp + ecx*4]
fld dword [esp + 0x190]
mov dword [ebp + 0x782a14], eax
mov eax, dword [esp + 0x17c]
fstp dword [ebp + 0x782a18]
mov dword [ebp + 0x782a1c], eax
mov eax, dword [esp + 0x180]
mov dword [ebp + 0x782a20], eax
mov eax, dword [esp + 0x184]
fld dword [esp + 0x194]
mov dword [ebp + 0x782a24], eax
mov eax, dword [esp + 0x188]
mov dword [ebp + 0x782a28], eax
mov eax, dword [esp + 0x1c4]
fstp dword [ebp + 0x782a2c]
fld dword [esp + 0x198]
fstp dword [ebp + 0x782a30]
fld dword [esp + 0x19c]
fstp dword [ebp + 0x782a34]
fld dword [esp + 0x1a0]
fstp dword [ebp + 0x782a38]
fld dword [esp + 0x1cc]
fstp dword [ebp + 0x782a3c]
fld dword [esp + 0x1d0]
fstp dword [ebp + 0x782a40]
fld dword [esp + 0x1d4]
fstp dword [ebp + 0x782a44]
fld dword [esp + 0x1a4]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a4c]
fld dword [esp + 0x1a8]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a50]
fld dword [esp + 0x1ac]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a54]
fld dword [esp + 0x1b0]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a58]
fld dword [esp + 0x1b4]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a5c]
fld dword [esp + 0x1b8]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a60]
fld dword [esp + 0x1bc]
fmul dword [0x69dbe8]
fstp dword [ebp + 0x782a64]
mov dword [ebp + 0x782a68], eax
mov eax, dword [esp + 0x1c8]
mov dword [ebp + 0x782a6c], eax
mov eax, dword [esp + 0x18c]
fld dword [esp + 0x1a8]
mov dword [ebp + 0x782a70], eax
mov eax, dword [esp + 0x1c0]
fcomp dword [0x69dbec]
mov dword [ebp + 0x782a74], eax
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5d569e
cmp edi, 0x1f
je 0x5d569e
cmp edi, 0x13
je 0x5d569e
cmp edi, 0x14
je 0x5d569e
cmp edi, 0x15
je 0x5d569e
fld dword [ebp + 0x782a50]
fsub dword [ebp + 0x782a4c]
fmul dword [0x69dbf0]
fnstcw word [esp + 0xc]
mov eax, dword [esp + 0xc]
or byte [esp + 0xd], 0xc
fldcw word [esp + 0xc]
mov dword [esp + 0xc], eax
fistp dword [esp + 0x10]
fldcw word [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x782a1c], eax
cmp edi, 0x23
mov eax, dword [esp + 0x1c4]
je 0x5d56af
cmp edi, 0x22
jne 0x5d56b4
or eax, 0xffffffff
jmp 0x5d56be
cmp edi, 0xd
jne 0x5d56be
mov eax, 0x123
cmp eax, 0xffffffff
je 0x5d56d0
mov ecx, dword [eax*4 + 0x92d4c8]
push edi
call fcn.00629c30
xor edi, edi
push edi
call fcn.00405980
pop ecx
push eax
lea eax, [esp + 0x160]
push eax
call fcn.00642620
test eax, eax
pop ecx
pop ecx
jne 0x5d56f5
mov dword [ebp + 0x782a48], edi
jmp 0x5d56fb
inc edi
cmp edi, 0x3d
jl 0x5d56d2
cmp esi, ebx
jb 0x5d52b0
add esp, 0x1d8
pop ebp
pop edi
pop esi
pop ebx
ret