Function at 0x519e90
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xaf4
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0xaf0], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x48], eax
xor eax, eax
push edi
mov edi, ecx
mov cl, byte [esi + 0x12]
mov ebx, edx
mov edx, dword [esi + 0x67c]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x64], eax
mov al, byte [esi + 5]
push 0xff43
mov dword [esp + 0x6c], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x74], 0xffffffff
mov byte [esp + 0x5f], cl
mov dword [esp + 0x119], edx
mov byte [esp + 0x30c], al
mov byte [esp + 0x30d], 0
mov byte [esp + 0x20c], 0
mov byte [esp + 0x28c], 0
mov byte [esp + 0x14c], 0
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
jne 0x519f42
lea ebx, [eax + 6]
jmp 0x51b180
mov eax, dword [esp + 0x4c]
xor ecx, ecx
xor edx, edx
mov byte [eax + 0x311], 0
mov dword [eax + 0x309], ecx
cmp dx, word [ebx + 0xa]
mov byte [esp + 0x408], cl
jge 0x519f8f
add eax, 0xf1e
mov dword [eax + 0x400], 0
mov dword [eax], 0
mov dword [eax - 0x400], 1
movsx edx, word [ebx + 0xa]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x519f69
xor ecx, ecx
xor eax, eax
cmp cx, word [ebx + 0xa]
jge 0x519fc4
lea esp, [esp]
mov edx, dword [ebx + 0xe]
cmp word [edx + ecx + 1], 0xd
jne 0x519fb5
mov edx, dword [esp + 0x4c]
inc dword [edx + 0x309]
movsx edx, word [ebx + 0xa]
inc eax
add ecx, 0x189
cmp eax, edx
jl 0x519fa0
mov eax, dword [esp + 0x4c]
cmp dword [eax + 0x309], 0
jle 0x519ffb
mov ecx, eax
add ecx, 0x1720
push ecx
call fcn.0055ac70
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x51b1e8
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x54]
mov byte [edx + 0x311], 1
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x311], 0
je 0x51a06e
mov ecx, dword [str.public]
mov edx, dword [ecx + 0x159]
push 0x5b0820
add eax, 0x312
push edx
push eax
mov dword [esp + 0x78], eax
call fcn.0056a970
add esp, 0xc
test eax, eax
jne 0x51a03a
mov ebx, 0x73a
jmp 0x51b180
push 0x5a845c
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
mov dword [esp + 0x78], eax
test eax, eax
jne 0x51a076
mov eax, dword [esp + 0x6c]
push eax
mov ebx, 0xe21
push 0x7df
push ebx
call fcn.00406f10
add esp, 0xc
jmp 0x51b209
mov dword [esp + 0x78], 0
movsx edx, word [ebx + 0xa]
xor ecx, ecx
test edx, edx
jle 0x51a0a7
mov eax, dword [ebx + 0xe]
inc eax
movzx ebx, word [eax]
cmp bx, 8
je 0x51a09f
cmp bx, 9
je 0x51a09f
inc ecx
add eax, 0x189
cmp ecx, edx
jl 0x51a084
jmp 0x51a0a7
mov dword [esp + 0x64], 1
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov dword [eax + 0x301], ecx
mov dword [eax + 0x305], ecx
movzx edx, byte [esi + 0xe]
mov al, byte [esi + 5]
mov byte [esp + 0xfc], dl
movzx edx, byte [esi + 4]
mov dword [0x6b283c], esi
mov byte [esp + 0xb8], 0x5c
mov byte [esp + 0xb9], al
mov dword [esp + 0xbf], ecx
mov byte [esp + 0xba], dl
mov dword [esp + 0xbb], 0xa
cmp dword [esi + 0x22c], ecx
jne 0x51a117
mov eax, dword [esi + 0x228]
mov dword [esi + 0x22c], eax
mov dword [esi + 0x274], 1
call fcn.00514df0
mov ecx, dword [esp + 0x4c]
push 0
mov dword [ecx + 0x30d], 0
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0xa4]
push edx
mov edx, dword [ecx]
lea eax, [esp + 0x7c]
push eax
push edx
call fcn.00421c80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0xf8], ebx
test ebx, ebx
jne 0x51b1e8
cmp dword [esi + 0x230], 0xffffffff
jne 0x51a16c
mov dword [esi + 0x230], 1
cmp dword [esi + 0x230], 1
jne case.0x51a183.6
mov esi, dword [esi + 0x22c]
lea eax, [esi - 5]
cmp eax, 6
ja case.0x51a183.6
jmp dword [eax*4 + 0x51b2ac]
push edi
push 4
push 1
push 0x5b06ec
jmp 0x51a1c4
push edi
push 4
push 1
push 0x5b06f4
jmp 0x51a1c4
push edi
push 2
push 1
push 0x5b06f0
jmp 0x51a1c4
push edi
push 2
push 1
push 0x5b06f8
jmp 0x51a1c4
push edi
push 3
push 1
push 0x5b06fc
call dword [sym.imp.MSVCR90.dll_fwrite]
add esp, 0x10
cmp dword [esp + 0x6c], 0
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x3c
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5a85d0
mov ecx, str.TABLE
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
lea eax, [esp + 0x308]
push eax
push str.nullrep
mov eax, edi
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
push 0x5b0854
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
cmp dword [esp + 0x64], 0
mov dword [esp + 0x5c], 1
je 0x51a3a5
mov edx, dword [esp + 0x54]
xor ecx, ecx
cmp cx, word [edx + 0xa]
mov dword [esp + 0x60], 0
jge 0x51a3a5
xor esi, esi
mov ebx, dword [esp + 0x54]
mov eax, dword [ebx + 0xe]
movzx eax, word [eax + esi + 1]
cmp ax, 8
je 0x51a28d
cmp ax, 9
jne 0x51a386
push str.COLUMN
mov eax, 1
mov ecx, edi
call fcn.00517cd0
add esp, 4
test eax, eax
jl 0x51b17b
mov ecx, dword [ebx + 0xe]
lea edx, [ecx + esi + 5]
push edx
push str.name
mov eax, edi
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
mov eax, dword [ebx + 0xe]
add eax, esi
cmp word [eax + 1], 9
jne 0x51a316
movsx ecx, byte [eax + 3]
push ecx
call fcn.0057f470
mov edx, dword [ebx + 0xe]
add esp, 4
push eax
movsx eax, byte [edx + esi + 4]
push eax
call fcn.0057f470
add esp, 4
push eax
push str.timespan
lea ecx, [esp + 0x394]
push str._s__s:_s_
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
lea edx, [esp + 0x39c]
push edx
jmp 0x51a356
movsx eax, byte [eax + 3]
push eax
call fcn.0057f470
mov ecx, dword [ebx + 0xe]
movsx edx, byte [ecx + esi + 4]
add esp, 4
push eax
push edx
call fcn.0057f470
add esp, 4
push eax
push str.datetime
lea eax, [esp + 0x394]
push str._s__s:_s_
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
lea ecx, [esp + 0x39c]
push ecx
push str.type
mov eax, edi
call fcn.00517d30
add esp, 0x1c
test eax, eax
jne 0x51b17b
push 0x5b0844
xor ecx, ecx
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x60]
movsx ecx, word [edx + 0xa]
inc eax
add esi, 0x189
cmp eax, ecx
mov dword [esp + 0x60], eax
jl 0x51a271
mov ecx, dword [esp + 0x74]
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 0x51a3c1
dec eax
jmp 0x51a3c4
movsx eax, dx
test eax, eax
je 0x51b0ad
cmp byte [esp + 0x5b], 0
je 0x51a417
mov edx, dword [esp + 0x7c]
movsx eax, word [edx + 0x16]
mov esi, 1
cmp eax, esi
mov dword [esp + 0x90], eax
jle 0x51a417
jmp 0x51a3f0
push 0x5a8a18
xor ecx, ecx
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
inc esi
cmp esi, dword [esp + 0x90]
jl 0x51a3f0
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x5c], 1
jne 0x51a491
push 0x5ac8c8
mov ecx, 9
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x3c
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5a85d0
mov ecx, 0x5b0644
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5b0854
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x5c], 2
mov edx, dword [esp + 0x54]
xor eax, eax
cmp ax, word [edx + 0xa]
mov dword [esp + 0x60], 0
jge 0x51aef8
jmp 0x51a4b4
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x60]
movzx eax, word [ecx + esi*2]
cmp ax, word [ecx + esi*2 + 2]
jne 0x51a4c9
xor eax, eax
xor edi, edi
jmp 0x51a4d0
movsx edi, ax
add edi, ecx
xor eax, eax
cmp byte [esp + 0x5b], 0
mov dword [esp + 0x50], edi
mov dword [esp + 0x98], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], eax
je 0x51a529
mov eax, dword [esp + 0x7c]
movsx ecx, word [eax + esi*2 + 0x18]
mov ebx, dword [sym.imp.MSVCR90.dll_sprintf]
mov eax, ecx
sub eax, dword [esp + 0x90]
mov dword [esp + 0x90], ecx
lea ecx, [eax - 1]
push ecx
push eax
lea edx, [esp + 0x144]
push str.____d._ds
push edx
call ebx
add esp, 0x10
jmp 0x51a545
lea eax, [esp + 0x13c]
push 0x5b0810
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
mov ebx, dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 8
test edi, edi
jne 0x51a571
movsx ecx, byte [esp + 0xb9]
mov esi, dword [esp + 0x48]
push ecx
push 0x5ac8c8
push esi
call ebx
add esp, 0xc
mov dword [esp + 0x98], 1
jmp 0x51aa0c
mov edx, dword [esp + 0x54]
imul esi, esi, 0x189
mov eax, dword [edx + 0xe]
movsx eax, word [eax + esi + 1]
dec eax
cmp eax, 0x1e
ja case.0x51a594.10
movzx ecx, byte [eax + 0x51b308]
jmp dword [ecx*4 + 0x51b2c8]
movsx edx, byte [edi]
mov esi, dword [esp + 0x48]
push edx
push 0x5a8c2c
push esi
call ebx
add esp, 0xc
jmp 0x51aa0c
movsx eax, word [edi]
mov esi, dword [esp + 0x48]
push eax
push 0x5a8c2c
push esi
call ebx
add esp, 0xc
jmp 0x51aa0c
mov ecx, dword [edi]
mov esi, dword [esp + 0x48]
push ecx
push 0x5a8530
push esi
call ebx
add esp, 0xc
jmp 0x51aa0c
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov esi, dword [esp + 0x48]
push edx
push eax
push str._I64d
push esi
call ebx
add esp, 0x10
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push edi
push esi
call fcn.0057c9b0
mov ebx, dword [sym.imp.MSVCR90.dll_malloc]
push 0x64
call ebx
mov edi, eax
push 0x7f
mov dword [esp + 0x74], edi
call ebx
mov ebx, eax
push edi
mov ecx, esi
mov dword [esp + 0x98], ebx
call fcn.00517dc0
lea ecx, [esp + 0x150]
push str.__s
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
push ebx
mov ebx, dword [sym.imp.MSVCR90.dll_free]
call ebx
push edi
call ebx
add esp, 0x24
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push edi
push esi
call fcn.0057ca10
mov ebx, dword [sym.imp.MSVCR90.dll_malloc]
push 0x64
call ebx
mov edi, eax
push 0x7f
mov dword [esp + 0x74], edi
call ebx
mov ebx, eax
push edi
mov ecx, esi
mov dword [esp + 0x98], ebx
call fcn.00517dc0
add esp, 0x14
test eax, eax
je 0x51a693
mov dword [esp + 0x6c], 1
push edi
mov edi, dword [sym.imp.MSVCR90.dll_free]
call edi
push ebx
call edi
lea edx, [esp + 0x144]
push str.__s
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0x10
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push esi
push edi
call fcn.00581f80
add esp, 8
jmp 0x51aa0c
fld dword [edi]
mov esi, dword [esp + 0x48]
sub esp, 8
fstp qword [esp]
push 8
push str._.e
push esi
call ebx
add esp, 0x14
jmp 0x51aa0c
fld qword [edi]
mov esi, dword [esp + 0x48]
sub esp, 8
fstp qword [esp]
push 0x11
push 0x5b07f0
push esi
call ebx
add esp, 0x14
jmp 0x51aa0c
mov eax, dword [0x6b283c]
mov ecx, dword [eax + 0x228]
mov esi, dword [esp + 0x48]
push ecx
push edi
lea edx, [esp + 0xb0]
push edx
push 1
xor eax, eax
mov edi, esi
call fcn.00517850
add esp, 0x10
cmp eax, 0xffffffff
je 0x51b054
mov byte [eax + esi], 0
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push 0
push edi
push esi
call fcn.00576e20
add esp, 0xc
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push 0xff43
push edi
push esi
call fcn.00576eb0
add esp, 0xc
jmp 0x51aa0c
mov esi, dword [esp + 0x48]
push 0xff43
push edi
push esi
call fcn.00576f00
add esp, 0xc
jmp 0x51aa0c
cmp byte [edi], 0
mov eax, 0x5b07e8
jne 0x51a796
mov eax, 0x5b07e0
mov esi, dword [esp + 0x48]
push eax
push 0x5a85d0
push esi
call ebx
add esp, 0xc
jmp 0x51aa0c
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x680]
test eax, eax
jne 0x51ab5e
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x7c]
lea ecx, [esp + 0x94]
push ecx
push eax
lea ecx, [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x1d4]
push edx
lea eax, [esp + 0x708]
push eax
mov eax, dword [edi + 0xa]
mov esi, ebx
call fcn.00517f50
mov ecx, dword [esp + 0x5c]
mov esi, 1
add esp, 0x14
mov byte [ecx], 0x27
cmp word [ebx + 0x171e], si
jl 0x51a81c
cmp dword [esp + 0x94], 0
je 0x51a84e
mov edx, dword [edi + 0x228]
mov edi, dword [esp + 0x48]
push edx
lea eax, [esp + 0x6fc]
push eax
lea ecx, [esp + 0xb0]
push ecx
push 0
mov eax, esi
call fcn.00517850
mov esi, eax
add esp, 0x10
cmp esi, 0xffffffff
je 0x51b054
mov edi, dword [esp + 0x48]
mov byte [esi + edi], 0x27
inc esi
mov byte [esi + edi], 0
inc esi
cmp esi, 2
jle 0x51a894
lea eax, [edi + 1]
lea edx, [esp + 0x148]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51a870
lea eax, [esp + 0x148]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51a884
sub eax, edx
mov byte [esp + eax + 0x147], cl
cmp word [ebx + 0x171e], 1
jl 0x51a922
cmp byte [esp + 0x1c8], 0
je 0x51a8e5
lea edx, [esp + 0x288]
push edx
lea eax, [esp + 0x20c]
push eax
lea eax, [esp + 0x1d0]
call fcn.00517e90
add esp, 8
test eax, eax
jne 0x51a8d8
mov byte [esp + 0x288], al
jmp 0x51a8dd
cmp eax, 1
jne 0x51a8e5
mov byte [esp + 0x208], 0
test esi, esi
jle 0x51a922
lea eax, [edi + 1]
lea edx, [esp + 0x148]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51a8f5
lea eax, [esp + 0x148]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51a910
sub eax, edx
mov byte [esp + eax + 0x147], cl
mov byte [edi], cl
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov esi, dword [esp + 0x78]
mov edi, dword [sym.imp.MSVCR90.dll_fprintf]
push edx
push 0x5a9028
push esi
call edi
add esp, 0xc
cmp word [ebx + 0x171e], 2
jl 0x51a95e
mov eax, dword [esp + 0x50]
movzx ecx, byte [eax + 0x12]
push ecx
push 0x5af97c
push esi
call edi
add esp, 0xc
jmp 0x51a96c
mov edx, dword [esp + 0x50]
cmp byte [edx + 0x12], 0
ja 0x51b07e
cmp word [ebx + 0x171e], 3
jl 0x51a98e
mov eax, dword [esp + 0x50]
test byte [eax + 8], 1
je 0x51a987
mov eax, 0x5b07dc
jmp 0x51a993
mov eax, 0x5b07d8
jmp 0x51a993
mov eax, 0x5a8a1a
mov ecx, dword [esp + 0x50]
movzx edx, word [ecx + 0x10]
push edx
mov edx, dword [ecx + 0xc]
push edx
push eax
mov eax, dword [ecx + 4]
push eax
push str.__ld__s_lu__lu
push esi
call edi
add esp, 0x18
cmp word [ebx + 0x171e], 1
jl 0x51a9ef
cmp dword [esp + 0x94], 0
jne 0x51a9d2
cmp dword [ebx + 0x309], 1
mov eax, 0x5a8a1a
jle 0x51a9d9
lea eax, [esp + 0x6f8]
push eax
lea ecx, [esp + 0x1ec]
push ecx
push str.__s_s_n
push esi
call edi
add esp, 0x10
jmp 0x51aa02
lea edx, [esp + 0x6f8]
push edx
push str.__s_n
push esi
call edi
add esp, 0xc
inc dword [ebx + 0x30d]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x5c]
cmp eax, 2
jne 0x51adf1
mov ebx, dword [esp + 0x68]
mov edi, eax
nop
push 0x5ac8c8
mov ecx, 9
call fcn.00517470
add esp, 4
sub edi, 1
jne 0x51aa20
test eax, eax
jl 0x51b17b
push 0x5ac8c8
lea ecx, [edi + 0x3c]
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5a85d0
mov ecx, 0x5b0710
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
imul edx, edx, 0x189
mov ecx, dword [eax + 0xe]
lea edx, [ecx + edx + 5]
push edx
push str.name
mov eax, ebx
mov dword [esp + 0x64], 3
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
cmp byte [esp + 0x288], al
je 0x51ad4d
cmp byte [esp + 0x208], al
je 0x51aae2
lea eax, [esp + 0x208]
push eax
push str.offset
mov eax, ebx
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
mov byte [esp + 0x208], al
lea ecx, [esp + 0x288]
push ecx
push str.blobsize
mov eax, ebx
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
mov byte [esp + 0x288], al
cmp byte [esp + 0x148], al
je 0x51ab37
lea edx, [esp + 0x148]
push edx
push str.blobfile
mov eax, ebx
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
mov byte [esp + 0x148], al
push 0x5a85d0
mov ecx, 0x5b0844
call fcn.00517470
add esp, 4
test eax, eax
jne 0x51b17b
mov dword [esp + 0x5c], 2
jmp 0x51aedf
xor edi, edi
push edi
push 0x29
push eax
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x1720]
push ecx
call fcn.0055ace0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0xf8], ebx
test ebx, ebx
jne 0x51b1e8
mov eax, dword [esp + 0x50]
cmp dword [eax], ebx
jne 0x51aba8
mov esi, dword [esp + 0x48]
push 0x5b07b4
push esi
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 8
jmp 0x51aa0c
lea edx, [esp + 0x70]
push edx
push 0
add eax, 4
push 2
push eax
call fcn.004238c0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51b083
mov ecx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x54]
push 1
add eax, 0xc
push eax
push ecx
call fcn.00423900
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51b083
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
mov dword [esp + 0x50], eax
test eax, eax
jle 0x51acbf
mov eax, dword [esp + 0x50]
cmp eax, 0x200
jb 0x51ac0b
mov eax, 0x200
lea ecx, [esp + 0x9c]
push ecx
push eax
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x500]
push edx
push eax
call fcn.00423d00
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51b083
mov eax, dword [esp + 0x9c]
sub dword [esp + 0x50], eax
xor esi, esi
test eax, eax
jbe 0x51acb4
lea ecx, [edi + 0xa]
cmp ecx, 0xff43
jle 0x51ac6d
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x68]
lea edx, [esp + 0x13c]
push edx
mov byte [edi + ecx], 0
call fcn.00517470
add esp, 4
xor edi, edi
mov eax, dword [esp + 0x48]
lea ecx, [edi + eax]
movzx eax, byte [esp + esi + 0x4f8]
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x8c]
push edx
mov edx, dword [ecx + 0x1720]
push eax
push edx
call fcn.0055ad50
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51b1e8
add edi, dword [esp + 0x88]
inc esi
cmp esi, dword [esp + 0x9c]
jb 0x51ac44
cmp dword [esp + 0x50], 0
jg 0x51abfb
mov eax, dword [esp + 0x70]
push eax
call fcn.004240d0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x51b083
mov esi, dword [esp + 0x48]
lea ecx, [edi + 0xa]
cmp ecx, 0xff43
mov dword [esp + 0x70], 0xffffffff
jle 0x51ad08
mov ebx, dword [esp + 0x68]
lea edx, [esp + 0x13c]
push edx
mov ecx, esi
mov byte [edi + esi], al
call fcn.00517470
add esp, 4
xor edi, edi
mov edx, dword [esp + 0x4c]
lea eax, [edi + esi]
push eax
mov eax, dword [edx + 0x1720]
lea ecx, [esp + 0x8c]
push ecx
push eax
call fcn.0055adb0
mov ebx, eax
add esp, 0xc
mov dword [esp + 0xf8], ebx
test ebx, ebx
jne 0x51b1e8
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x48]
add ecx, edi
mov byte [ecx + esi], al
jmp 0x51aa0c
cmp byte [esp + 0x148], 0
je 0x51ad64
lea eax, [esp + 0x148]
push eax
jmp 0x51ab19
cmp dword [esp + 0x98], 0
je 0x51ad87
lea ecx, [esp + 0x308]
push ecx
push 0x5a85d0
push esi
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
jmp 0x51add5
lea edi, [esp + 0x308]
mov eax, esi
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x51adb0
test cl, cl
je 0x51adac
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x51adb0
add eax, 2
add edi, 2
test cl, cl
jne 0x51ad90
xor eax, eax
jmp 0x51adb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51add5
push 0x5a90c4
push str.null
mov eax, ebx
call fcn.00517d30
add esp, 8
test eax, eax
jne 0x51b17b
push 0x5ac8c8
mov ecx, 0x3e
call fcn.00517470
add esp, 4
test eax, eax
jne 0x51b17b
jmp 0x51adfb
jle 0x51aedf
mov ebx, dword [esp + 0x68]
cmp dword [esp + 0x6c], 0
je 0x51ae14
push 0x5a85d0
mov ecx, 0x5a9728
call fcn.00517470
add esp, 4
push 0x5a85d0
mov ecx, esi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
jle 0x51ae38
mov dword [esp + 0x8c], 1
push 0x5ac8c8
mov ecx, 0x3c
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x2f
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5a85d0
mov ecx, 0x5b0710
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x3e
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov edx, dword [str.public]
mov eax, dword [edx + 0x148]
cmp eax, 0x1c
jne 0x51aeb8
push 0x5ae418
jmp 0x51aec9
cmp eax, 0xa
jne 0x51aec4
push 0x5b07b0
jmp 0x51aec9
push 0x5a8fe8
xor ecx, ecx
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
dec dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x60]
movsx edx, word [ecx + 0xa]
inc eax
cmp eax, edx
mov dword [esp + 0x60], eax
jl 0x51a4b0
cmp dword [esp + 0x5c], 2
mov edi, dword [esp + 0x68]
jne 0x51afb9
push 0x5ac8c8
mov ecx, 9
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x3c
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51afb1
push 0x5ac8c8
mov ecx, 0x2f
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51afb1
push 0x5a85d0
mov ecx, 0x5b0644
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51afb1
push 0x5ac8c8
mov ecx, 0x3e
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51afb1
mov eax, dword [str.public]
mov eax, dword [eax + 0x148]
cmp eax, 0x1c
jne 0x51af96
push 0x5ae418
jmp 0x51afa7
cmp eax, 0xa
jne 0x51afa2
push 0x5b07b0
jmp 0x51afa7
push 0x5a8fe8
xor ecx, ecx
call fcn.00517470
add esp, 4
mov dword [esp + 0x5c], 1
mov esi, dword [esp + 0x4c]
inc dword [esi + 0x301]
cmp dword [esp + 0x8c], 0
mov ebx, dword [esi + 0x301]
je 0x51b020
lea eax, [esp + 0x408]
mov dword [esp + 0x8c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51afe8
sub eax, edx
push ebx
lea ecx, [esp + eax + 0x40c]
push str._ld
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov eax, dword [esp + 0x8c]
inc eax
add esp, 0xc
mov dword [esp + 0x80], eax
cmp eax, 0x10
je 0x51b0b1
mov ecx, dword [esp + 0x54]
push 0
lea edx, [esp + 0xa4]
push edx
mov edx, dword [ecx]
lea eax, [esp + 0x7c]
push eax
push edx
call fcn.00421c80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0xf8], ebx
test ebx, ebx
je 0x51a3a5
jmp 0x51b1e8
mov eax, dword [0x6b283c]
mov ecx, dword [eax + 0x228]
push ecx
mov ebx, 0x25ea
call fcn.0056d930
push eax
push 0x7df
push ebx
call fcn.00406f10
add esp, 0x10
jmp 0x51b1f7
mov ebx, 0x25fe
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
push eax
call fcn.0041f450
mov ecx, dword [esp + 0x50]
add ecx, 0x312
push ecx
push 0x7df
push ebx
call fcn.00406f10
add esp, 0x10
jmp 0x51b1f7
mov esi, dword [esp + 0x4c]
push 0x5ac8c8
mov ecx, 0x3c
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x2f
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5a85d0
mov ecx, str.TABLE
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
push 0x5ac8c8
mov ecx, 0x3e
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov edx, dword [str.public]
mov eax, dword [edx + 0x148]
cmp eax, 0x1c
jne 0x51b12f
push 0x5ae418
jmp 0x51b140
cmp eax, 0xa
jne 0x51b13b
push 0x5b07b0
jmp 0x51b140
push 0x5a8fe8
xor ecx, ecx
mov ebx, edi
call fcn.00517470
add esp, 4
test eax, eax
jl 0x51b17b
mov eax, dword [esi + 0x301]
mov dword [esi + 0x305], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x51b19b
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
cmp eax, 0xffffffff
jne 0x51b19b
mov dword [esp + 0x78], 0
mov ebx, 0x1f83
mov ecx, dword [esp + 0x4c]
add ecx, 0x201
push ecx
push 0x7df
push ebx
call fcn.00406f10
add esp, 0xc
jmp 0x51b1f7
cmp dword [esp + 0x80], 0
jle 0x51b1c2
lea edx, [esp + 0x408]
push edx
mov ebx, 0x25ec
push 0x7df
push ebx
call fcn.00406f10
add esp, 0xc
jmp 0x51b1f7
cmp dword [esi + 0x30d], 0
jne 0x51b26a
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push ecx
call fcn.0041f450
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x51b26a
push 0x7df
push 0
call fcn.00406f10
add esp, 8
mov eax, dword [esp + 0x78]
test eax, eax
je 0x51b209
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
mov eax, dword [esp + 0x48]
mov esi, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x51b21d
push eax
call esi
add esp, 4
cmp ebx, 0x25fe
je 0x51b234
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
push eax
call fcn.0041f450
add esp, 4
mov eax, dword [esp + 0x84]
test eax, eax
je 0x51b245
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x64]
test eax, eax
je 0x51b253
push eax
call esi
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xaf0]
xor ecx, esp
call fcn.00586584
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x48]
push ecx
call dword [sym.imp.MSVCR90.dll_free]
mov eax, dword [esi + 0x1720]
add esp, 4
test eax, eax
je 0x51b28b
push eax
call fcn.0055acb0
add esp, 4
mov ecx, dword [esp + 0xafc]
pop edi
mov dword [esi + 0x1720], 0
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00586584
mov esp, ebp
pop ebp
ret