Function at 0x519110
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x834
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x830], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
xor eax, eax
mov ebx, edx
push 0x8d
mov esi, ecx
mov cl, byte [edi + 0x12]
push eax
lea edx, [esp + 0x70]
push edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov byte [esp + 0x23], cl
call sub.MSVCR90.dll_memset
mov eax, dword [edi + 0x67c]
mov dword [esp + 0xe1], eax
lea eax, [ebx + 0x1720]
push 0xff43
mov dword [esp + 0x30], eax
mov dword [eax], 0
call dword [sym.imp.MSVCR90.dll_malloc]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x18], eax
cmp eax, ecx
jne 0x5191ad
lea esi, [ecx + 6]
jmp 0x519ce6
xor edx, edx
mov byte [ebx + 0x311], cl
mov dword [ebx + 0x309], ecx
cmp dx, word [esi + 0xa]
mov byte [esp + 0x148], cl
jge 0x5191ea
lea eax, [ebx + 0xb1e]
mov dword [eax + 0x400], 0
mov dword [eax], 1
movsx edx, word [esi + 0xa]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x5191ce
xor ecx, ecx
xor eax, eax
cmp cx, word [esi + 0xa]
jge 0x519214
mov edx, dword [esi + 0xe]
cmp word [ecx + edx + 1], 0xd
jne 0x519205
inc dword [ebx + 0x309]
movsx edx, word [esi + 0xa]
inc eax
add ecx, 0x189
cmp eax, edx
jl 0x5191f4
cmp dword [ebx + 0x309], 0
jle 0x51923b
mov eax, dword [esp + 0x20]
push eax
call fcn.0055ac70
mov esi, eax
add esp, 4
test esi, esi
jne 0x519d47
mov byte [ebx + 0x311], 1
cmp byte [ebx + 0x311], 0
je 0x5192ab
mov ecx, dword [str.public]
mov edx, dword [ecx + 0x159]
push 0x5b0820
lea eax, [ebx + 0x312]
push edx
push eax
mov dword [esp + 0x48], eax
call fcn.0056a970
add esp, 0xc
test eax, eax
jne 0x519277
mov esi, 0x73a
jmp 0x519ce6
push 0x5a845c
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x5192b3
mov eax, dword [esp + 0x3c]
push eax
mov esi, 0xe21
push 0x7df
push esi
call fcn.00406f10
add esp, 0xc
jmp 0x519d56
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [ebx + 0x301], esi
mov dword [ebx + 0x305], esi
mov al, byte [edi + 0xe]
mov cl, byte [edi + 5]
mov dword [0x6b283c], edi
mov byte [esp + 0xbc], al
mov byte [esp + 0x78], 0x5c
mov byte [esp + 0x79], cl
mov dword [esp + 0x7f], esi
test al, al
je 0x5192f4
mov byte [esp + 0x7a], 0x20
mov dword [esp + 0x7b], 0x29
jmp 0x519303
mov dl, byte [edi + 4]
mov byte [esp + 0x7a], dl
mov dword [esp + 0x7b], 0xa
cmp dword [edi + 0x22c], esi
jne 0x519321
mov eax, dword [edi + 0x228]
mov dword [edi + 0x22c], eax
mov dword [edi + 0x274], 1
call fcn.00514df0
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x30]
mov dword [ebx + 0x30d], 0
mov ecx, dword [eax]
push edx
push ecx
call fcn.00421c80
mov esi, eax
add esp, 0x10
mov dword [esp + 0xb8], esi
test esi, esi
jne 0x519d47
cmp dword [edi + 0x230], 0xffffffff
jne 0x51936f
mov dword [edi + 0x230], 1
cmp dword [edi + 0x230], 1
jne case.0x519386.6
mov edi, dword [edi + 0x22c]
lea eax, [edi - 5]
cmp eax, 6
ja case.0x519386.6
jmp dword [eax*4 + 0x519e14]
mov edx, dword [esp + 0x10]
push edx
push 4
push 1
push 0x5b06ec
jmp 0x5193db
mov eax, dword [esp + 0x10]
push eax
push 4
push 1
push 0x5b06f4
jmp 0x5193db
mov ecx, dword [esp + 0x10]
push ecx
push 2
push 1
push 0x5b06f0
jmp 0x5193db
mov edx, dword [esp + 0x10]
push edx
push 2
push 1
push 0x5b06f8
jmp 0x5193db
mov eax, dword [esp + 0x10]
push eax
push 3
push 1
push 0x5b06fc
call dword [sym.imp.MSVCR90.dll_fwrite]
add esp, 0x10
cmp byte [esp + 0xbc], 0
je 0x519423
mov ebx, dword [esp + 0x10]
push 0x5a9d18
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
mov eax, ebx
call fcn.005190c0
test eax, eax
jl 0x519cdd
cmp byte [esp + 0x17], 0
jne 0x519d47
mov ecx, dword [esp + 0x28]
movzx esi, word [ecx]
movsx eax, si
cdq
sub eax, edx
sar eax, 1
movzx edx, word [ecx + eax*2 - 2]
cmp dx, si
jl 0x51943f
dec eax
jmp 0x519442
movsx eax, dx
test eax, eax
je 0x519c55
cmp byte [esp + 0xbc], 0
je 0x519473
mov ebx, dword [esp + 0x10]
push 0x5a9d18
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
mov ecx, dword [esp + 0x28]
cmp byte [esp + 0x17], 0
je 0x5194b4
mov edx, dword [esp + 0x30]
movsx edi, word [edx + 0x16]
mov esi, 1
cmp edi, esi
mov dword [esp + 0x54], edi
jle 0x5194b4
nop
mov ebx, dword [esp + 0x10]
push 0x5a8a18
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
inc esi
cmp esi, edi
jl 0x519490
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp ax, word [edx + 0xa]
mov dword [esp + 0x34], 0
jge 0x519b2a
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
add eax, 0x18
mov dword [esp + 0x4c], eax
jmp 0x5194e5
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
movzx eax, word [ecx + edx*2]
cmp ax, word [ecx + edx*2 + 2]
jne 0x5194f8
xor ebx, ebx
jmp 0x5194fd
movsx ebx, ax
add ebx, ecx
cmp byte [esp + 0x17], 0
je 0x519534
mov ecx, dword [esp + 0x4c]
movsx ecx, word [ecx]
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
mov eax, ecx
sub eax, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
lea edx, [eax - 1]
push edx
push eax
lea eax, [esp + 0x104]
push str.____d._ds
push eax
call esi
add esp, 0x10
jmp 0x519550
lea ecx, [esp + 0xfc]
push 0x5b0810
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 8
test ebx, ebx
jne 0x51956a
movsx edx, byte [esp + 0x79]
push edx
push 0x5ac8c8
push edi
call esi
add esp, 0xc
jmp case.0x51958b.10
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xe]
mov edx, dword [esp + 0x40]
movsx eax, word [ecx + edx + 1]
dec eax
cmp eax, 0x1e
ja case.0x51958b.10
movzx eax, byte [eax + 0x519e70]
jmp dword [eax*4 + 0x519e30]
movsx ecx, byte [ebx]
push ecx
push 0x5a8c2c
push edi
call esi
add esp, 0xc
jmp case.0x51958b.10
movsx edx, word [ebx]
push edx
push 0x5a8c2c
push edi
call esi
add esp, 0xc
jmp case.0x51958b.10
mov eax, dword [ebx]
push eax
push 0x5a8530
push edi
call esi
add esp, 0xc
jmp case.0x51958b.10
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push ecx
push edx
push str._I64d
push edi
call esi
add esp, 0x10
jmp case.0x51958b.10
push ebx
push edi
call fcn.0057c9b0
lea eax, [esp + 0x104]
push str.__s
push eax
call esi
add esp, 0x10
jmp case.0x51958b.10
push ebx
push edi
call fcn.0057ca10
lea ecx, [esp + 0x104]
push str.__s
push ecx
call esi
add esp, 0x10
jmp case.0x51958b.10
push edi
push ebx
call fcn.00581f80
add esp, 8
jmp case.0x51958b.10
fld dword [ebx]
sub esp, 8
fstp qword [esp]
push 0x11
push str._.e
push edi
call esi
add esp, 0x14
jmp case.0x51958b.10
fld qword [ebx]
sub esp, 8
fstp qword [esp]
push 0x11
push 0x5b07f0
push edi
call esi
add esp, 0x14
jmp case.0x51958b.10
mov edx, dword [0x6b283c]
mov byte [edi], 0x27
mov eax, dword [edx + 0x228]
push eax
push ebx
lea ecx, [esp + 0x70]
push ecx
push 0
mov eax, 1
call fcn.00517850
add esp, 0x10
cmp eax, 0xffffffff
je 0x519789
mov byte [eax + edi], 0x27
mov byte [eax + edi + 1], 0
jmp case.0x51958b.10
push 0
push ebx
push edi
call fcn.00576e20
add esp, 0xc
jmp case.0x51958b.10
push 0xff43
push ebx
push edi
call fcn.00576eb0
add esp, 0xc
jmp case.0x51958b.10
push 0xff43
push ebx
push edi
call fcn.00576f00
add esp, 0xc
jmp case.0x51958b.10
cmp byte [ebx], 0
mov eax, 0x5b07e8
jne 0x5196e7
mov eax, 0x5b07e0
push eax
push 0x5a85d0
push edi
call esi
add esp, 0xc
jmp case.0x51958b.10
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x680]
test eax, eax
jne 0x5198e2
mov ecx, dword [ebx]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x5c]
push eax
push ecx
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x134]
push eax
mov eax, dword [edi + 0xa]
lea ecx, [esp + 0x448]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.00517f50
mov edx, dword [esp + 0x2c]
mov eax, 1
add esp, 0x14
mov byte [edx], 0x27
cmp word [esi + 0x171e], ax
jl 0x51975d
cmp dword [esp + 0x5c], 0
je 0x5197b4
mov eax, dword [edi + 0x228]
mov edi, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x43c]
push ecx
lea edx, [esp + 0x70]
push edx
push 0
mov eax, 1
call fcn.00517850
add esp, 0x10
cmp eax, 0xffffffff
jne 0x5197b6
mov ecx, dword [0x6b283c]
mov edx, dword [ecx + 0x228]
push edx
mov esi, 0x25ea
call fcn.0056d930
push eax
push 0x7df
push esi
call fcn.00406f10
add esp, 0x10
jmp 0x519d56
mov edi, edx
mov byte [eax + edi], 0x27
mov byte [eax + edi + 1], 0
cmp word [esi + 0x171e], 1
jl 0x5197f2
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5197d0
lea ecx, [esp + 0x128]
push ecx
sub eax, edx
add eax, edi
push 0x5a85d0
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
mov edx, dword [ebx]
mov edi, dword [esp + 0x2c]
push edx
push 0x5a9028
push edi
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
cmp word [esi + 0x171e], 2
jl 0x519828
movzx eax, byte [ebx + 0x12]
push eax
push 0x5af97c
push edi
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
jmp 0x519832
cmp byte [ebx + 0x12], 0
ja 0x519c26
cmp word [esi + 0x171e], 3
jl 0x519850
test byte [ebx + 8], 1
je 0x519849
mov eax, 0x5b07dc
jmp 0x519855
mov eax, 0x5b07d8
jmp 0x519855
mov eax, 0x5a8a1a
movzx ecx, word [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push ecx
push edx
push eax
mov eax, dword [ebx + 4]
mov ebx, dword [sym.imp.MSVCR90.dll_fprintf]
push eax
push str.__ld__s_lu__lu
push edi
call ebx
mov eax, 1
add esp, 0x18
cmp word [esi + 0x171e], ax
jl 0x5198c0
cmp dword [esp + 0x5c], 0
jne 0x519896
cmp dword [esi + 0x309], eax
mov eax, 0x5a8a1a
jle 0x51989d
lea eax, [esp + 0x438]
push eax
lea ecx, [esp + 0x10c]
push ecx
push str.__s_s_n
push edi
call ebx
mov edi, dword [esp + 0x28]
add esp, 0x10
inc dword [esi + 0x30d]
jmp case.0x51958b.10
lea edx, [esp + 0x438]
push edx
push str.__s_n
push edi
call ebx
mov edi, dword [esp + 0x24]
add esp, 0xc
inc dword [esi + 0x30d]
jmp case.0x51958b.10
xor edi, edi
push edi
push 0x29
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push ecx
call fcn.0055ace0
mov esi, eax
add esp, 0x10
mov dword [esp + 0xb8], esi
test esi, esi
jne 0x519d47
cmp dword [ebx], eax
jne 0x519928
mov edx, dword [esp + 0x18]
push 0x5b07b4
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov edi, dword [esp + 0x20]
add esp, 8
jmp case.0x51958b.10
lea eax, [esp + 0x24]
push eax
push 0
lea ecx, [ebx + 4]
push 2
push ecx
call fcn.004238c0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x519c2b
push eax
mov eax, dword [esp + 0x28]
push 1
lea edx, [ebx + 0xc]
push edx
push eax
call fcn.00423900
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x519c2b
mov ebx, dword [ebx]
mov dword [esp + 0x38], ebx
test ebx, ebx
jle 0x519a36
mov eax, dword [esp + 0x38]
cmp eax, 0x200
jb 0x519983
mov eax, 0x200
lea ecx, [esp + 0x3c]
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x240]
push edx
push eax
call fcn.00423d00
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x519c2b
mov eax, dword [esp + 0x3c]
sub dword [esp + 0x38], eax
xor ebx, ebx
mov dword [esp + 0x58], ebx
test eax, eax
jbe 0x519a2b
lea ebx, [ebx]
lea ecx, [edi + 0xa]
cmp ecx, 0xff43
jle 0x5199ed
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0xfc]
push edx
mov byte [edi + ecx], 0
call fcn.00517470
mov ebx, dword [esp + 0x5c]
add esp, 4
xor edi, edi
mov eax, dword [esp + 0x18]
lea ecx, [edi + eax]
movzx eax, byte [esp + ebx + 0x238]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x54]
push edx
mov edx, dword [ecx]
push eax
push edx
call fcn.0055ad50
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x519d47
add edi, dword [esp + 0x50]
inc ebx
mov dword [esp + 0x58], ebx
cmp ebx, dword [esp + 0x3c]
jb 0x5199c0
cmp dword [esp + 0x38], 0
jg 0x519973
mov eax, dword [esp + 0x24]
push eax
call fcn.004240d0
mov esi, eax
add esp, 4
test esi, esi
jne 0x519c2b
lea ecx, [edi + 0xa]
cmp ecx, 0xff43
mov dword [esp + 0x24], 0xffffffff
jle 0x519a7d
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0xfc]
push edx
mov byte [edi + ecx], al
call fcn.00517470
add esp, 4
xor edi, edi
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [edi + ebx]
push eax
mov eax, dword [edx]
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.0055adb0
mov esi, eax
add esp, 0xc
mov dword [esp + 0xb8], esi
test esi, esi
jne 0x519d47
mov ecx, dword [esp + 0x50]
add ecx, edi
mov byte [ecx + ebx], al
mov edi, ebx
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0xfc]
push edx
mov ecx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
jle 0x519add
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0x1c]
movsx ecx, word [eax + 0xa]
mov esi, dword [esp + 0x34]
dec ecx
cmp esi, ecx
jge 0x519b08
movzx ecx, byte [esp + 0x7a]
push 0x5ac8c8
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
mov edx, dword [esp + 0x1c]
movsx eax, word [edx + 0xa]
add dword [esp + 0x4c], 2
add dword [esp + 0x40], 0x189
inc esi
cmp esi, eax
mov dword [esp + 0x34], esi
jl 0x5194e1
mov ecx, dword [esp + 0x7b]
cmp ecx, 0xa
jne 0x519b64
mov ecx, dword [str.public]
mov eax, dword [ecx + 0x148]
cmp eax, 0x1c
jne 0x519b4d
push 0x5ae418
xor ecx, ecx
jmp 0x519b69
cmp eax, 0xa
jne 0x519b5b
push 0x5b07b0
xor ecx, ecx
jmp 0x519b69
push 0x5a8fe8
xor ecx, ecx
jmp 0x519b69
push 0x5ac8c8
mov ebx, dword [esp + 0x14]
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
cmp byte [esp + 0xbc], 0
je 0x519b9e
push 0x5a8fe8
push ebx
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 8
test eax, eax
jl 0x519cdd
mov edi, dword [esp + 0xc]
inc dword [edi + 0x301]
cmp dword [esp + 0x44], 0
mov esi, dword [edi + 0x301]
je 0x519bf5
lea eax, [esp + 0x148]
mov dword [esp + 0x44], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x519bc7
sub eax, edx
push esi
lea edx, [esp + eax + 0x14c]
push str._ld
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov eax, dword [esp + 0x54]
inc eax
add esp, 0xc
mov dword [esp + 0x48], eax
cmp eax, 0x10
je 0x519c59
mov edx, dword [esp + 0x1c]
push 0
lea eax, [esp + 0x64]
push eax
mov eax, dword [edx]
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00421c80
mov esi, eax
add esp, 0x10
mov dword [esp + 0xb8], esi
test esi, esi
je 0x519423
jmp 0x519d47
mov esi, 0x25fe
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0041f450
mov edx, dword [esp + 0x10]
add edx, 0x312
push edx
push 0x7df
push esi
call fcn.00406f10
add esp, 0x10
jmp 0x519d56
mov edi, dword [esp + 0xc]
cmp byte [esp + 0xbc], 0
je 0x519cb2
mov ecx, dword [esp + 0x7b]
mov ebx, dword [esp + 0x10]
push 0x5ac8c8
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
mov eax, dword [str.public]
mov eax, dword [eax + 0x148]
cmp eax, 0x1c
jne 0x519c93
push 0x5ae418
jmp 0x519ca4
cmp eax, 0xa
jne 0x519c9f
push 0x5b07b0
jmp 0x519ca4
push 0x5a8fe8
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x519cdd
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x301]
mov dword [edi + 0x305], ecx
test eax, eax
je 0x519cfd
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
cmp eax, 0xffffffff
jne 0x519cfd
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0xc]
mov esi, 0x1f83
add ebx, 0x201
push ebx
push 0x7df
push esi
call fcn.00406f10
add esp, 0xc
jmp 0x519d56
cmp dword [esp + 0x48], 0
jle 0x519d21
lea edx, [esp + 0x148]
push edx
mov esi, 0x25ec
push 0x7df
push esi
call fcn.00406f10
add esp, 0xc
jmp 0x519d56
cmp dword [edi + 0x30d], 0
jne 0x519dd3
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0041f450
mov esi, eax
add esp, 4
test esi, esi
je 0x519dd3
push 0x7df
push 0
call fcn.00406f10
add esp, 8
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x519d68
push eax
call fcn.004240d0
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x519d7a
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x519d8c
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
test eax, eax
je 0x519d9f
push eax
call fcn.0055acb0
add esp, 4
mov dword [edi], 0
cmp esi, 0x25fe
je 0x519dbc
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push eax
call fcn.0041f450
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x830]
xor ecx, esp
call fcn.00586584
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.MSVCR90.dll_free]
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x519df4
push eax
call fcn.0055acb0
add esp, 4
mov ecx, dword [esp + 0x83c]
pop edi
mov dword [esi], 0
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00586584
mov esp, ebp
pop ebp
ret