Function at 0x18019f20
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x4e8
mov eax, dword [0x1804e020]
xor eax, esp
mov dword [esp + 0x4e4], eax
push ebx
xor ecx, ecx
push ebp
lea eax, [esp + 0x3c]
push esi
mov dword [esp + 0x3c], eax
or eax, 0xffffffff
mov dword [esp + 0x1c], 4
push edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
cmp eax, 0xffffffff
je 0x18019f74
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov ecx, edi
lea esi, [esp + 0x4fc]
lea ebx, [esp + 0x60]
call fcn.18019b80
cmp eax, 1
jne case.default.0x1801a2bc
xor ebx, ebx
push ebx
push 0x20
push 0x8000
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x28], ebx
call dword [sym.imp.MSVCR90.dll__wsopen_s]
add esp, 0x14
test eax, eax
jne 0x1801a22a
mov eax, dword [esp + 0x1c]
push 0x280
lea ecx, [esp + 0x26c]
push ecx
push eax
mov dword [esp + 0x3c], ebx
mov ebp, eax
call dword [sym.imp.MSVCR90.dll__read]
mov esi, eax
add esp, 0xc
cmp esi, 0x280
jge 0x1801a003
push ebp
call dword [sym.imp.MSVCR90.dll__eof]
add esp, 4
test eax, eax
jle 0x1801a22a
mov dword [esp + 0x30], 2
cmp esi, 0x280
jne 0x1801a22a
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x26c]
push 0x180427f8
push eax
mov dword [esp + 0x38], ebx
call dword [sym.imp.MSVCR90.dll_strtok_s]
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x1801a135
mov edi, dword [sym.imp.MSVCR90.dll__strnicmp]
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1801a040
push 0x12
sub eax, edx
push str.Unicode_version_:
push esi
lea ebx, [ebx + eax + 1]
call edi
add esp, 0xc
test eax, eax
jne 0x1801a0be
add esi, 0x12
xor edi, edi
cmp byte [esi], 0
je 0x1801a08e
jmp 0x1801a070
movzx ecx, byte [esi]
push ecx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x1801a088
mov dl, byte [esi]
mov byte [esp + edi + 0x4c], dl
inc edi
inc esi
cmp byte [esi], 0
jne 0x1801a070
lea eax, [esp + 0x4c]
push eax
mov byte [esp + edi + 0x50], 0
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp dword [esp + 0x4fc], eax
jne 0x1801a135
mov edi, dword [sym.imp.MSVCR90.dll__strnicmp]
mov dword [esp + 0x28], 1
jmp 0x1801a0cf
push 0xd
push str.Data_count_:
push esi
call edi
add esp, 0xc
test eax, eax
je 0x1801a0f0
lea ecx, [esp + 0x2c]
push ecx
push 0x180427f8
push 0
call dword [sym.imp.MSVCR90.dll_strtok_s]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1801a038
jmp 0x1801a135
add esi, 0xd
xor edi, edi
cmp byte [esi], 0
je 0x1801a11e
lea ebx, [ebx]
movzx edx, byte [esi]
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x1801a118
mov al, byte [esi]
mov byte [esp + edi + 0x4c], al
inc edi
inc esi
cmp byte [esi], 0
jne 0x1801a100
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + edi + 0x50], 0
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x28], 0
je 0x1801a22a
push 0
push ebx
push ebp
call dword [sym.imp.MSVCR90.dll__lseek]
add esp, 0xc
test eax, eax
jl 0x1801a159
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x14]
lea eax, [edx*4]
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x1801a2ad
xor esi, esi
cmp dword [esp + 0x14], esi
jle 0x1801a215
mov edi, dword [sym.imp.MSVCR90.dll__read]
mov edi, edi
push 2
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov dword [esp + 0x24], 0
call edi
add esp, 0xc
cmp eax, 2
jge 0x1801a1c0
push ebp
call dword [sym.imp.MSVCR90.dll__eof]
xor edx, edx
add esp, 4
test eax, eax
setg dl
inc edx
mov dword [esp + 0x30], edx
mov ax, word [esp + 0x18]
push 2
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov word [ebx + esi*4], ax
mov dword [esp + 0x24], 0
call edi
add esp, 0xc
cmp eax, 2
jge 0x1801a200
push ebp
call dword [sym.imp.MSVCR90.dll__eof]
xor edx, edx
add esp, 4
test eax, eax
setg dl
inc edx
mov dword [esp + 0x30], edx
lea esp, [esp]
mov ax, word [esp + 0x18]
mov word [ebx + esi*4 + 2], ax
inc esi
cmp esi, dword [esp + 0x14]
jl 0x1801a190
cmp dword [esp + 0x30], 0
je 0x1801a2ad
push ebx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc edi
cmp edi, 9
mov dword [esp + 0x20], edi
jle 0x18019f65
cmp eax, 0xffffffff
je 0x1801a24f
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edi, dword [sym.imp.MSVCR90.dll_free]
xor esi, esi
test ecx, ecx
jle 0x1801a285
nop
mov eax, dword [esp + 0x40]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1801a280
sub eax, 8
cmp dword [eax], 0xdddd
jne 0x1801a280
push eax
call edi
mov ecx, dword [esp + 0x40]
add esp, 4
inc esi
cmp esi, ecx
jl 0x1801a260
cmp ecx, 2
jle 0x1801a294
mov ecx, dword [esp + 0x40]
push ecx
call edi
add esp, 4
mov ecx, dword [esp + 0x4f4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1802929c
add esp, 0x4e8
ret
mov edi, dword [esp + 0x20]
lea ecx, [edi - 4]
cmp ecx, 5
ja case.default.0x1801a2bc
lea edx, [edi - 4]
jmp dword [edx*4 + 0x1801a424]
mov eax, dword [esp + 0x14]
mov dword [0x180537c0], ebx
mov dword [0x180537d0], eax
jmp case.default.0x1801a2bc
mov ecx, dword [esp + 0x14]
mov dword [0x180537c4], ebx
mov dword [0x180537d4], ecx
jmp case.default.0x1801a2bc
mov edx, dword [esp + 0x14]
mov dword [0x180537cc], ebx
mov dword [0x180537dc], edx
jmp case.default.0x1801a2bc
mov eax, dword [esp + 0x14]
mov dword [0x180537c8], ebx
mov dword [0x180537d8], eax
jmp case.default.0x1801a2bc
mov ecx, dword [esp + 0x14]
mov dword [0x180537e0], ebx
mov dword [0x180537e8], ecx
jmp case.default.0x1801a2bc
mov edx, dword [esp + 0x14]
mov dword [0x180537e4], ebx
mov dword [0x180537ec], edx
xor esi, esi
cmp edi, 7
jg 0x1801a22a
mov edi, dword [0x180537b0]
lea esp, [esp]
cmp esi, dword [esp + 0x14]
jge 0x1801a22a
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + esi*4]
movzx edx, word [ecx + esi*4 + 2]
lea ecx, [eax - 0x3400]
mov ebx, 0x6bff
cmp cx, bx
ja 0x1801a372
movzx ecx, ax
sub ecx, 0x3400
jmp 0x1801a3ab
lea ecx, [eax + 0x5900]
mov ebx, 0xff
cmp cx, bx
ja 0x1801a38d
movzx ecx, ax
sub ecx, 0x3b00
jmp 0x1801a3ab
lea ecx, [eax + 0x700]
mov ebx, 0x1ff
cmp cx, bx
ja 0x1801a3a8
movzx ecx, ax
sub ecx, 0x8c00
jmp 0x1801a3ab
or ecx, 0xffffffff
lea eax, [edx - 0x3400]
mov ebx, 0x6bff
cmp ax, bx
ja 0x1801a3c5
movzx eax, dx
sub eax, 0x3400
jmp 0x1801a3fc
lea eax, [edx + 0x5900]
mov ebx, 0xff
cmp ax, bx
ja 0x1801a3df
movzx eax, dx
sub eax, 0x3b00
jmp 0x1801a3fc
lea eax, [edx + 0x700]
mov ebx, 0x1ff
cmp ax, bx
ja 0x1801a3f9
movzx eax, dx
sub eax, 0x8c00
jmp 0x1801a3fc
or eax, 0xffffffff
cmp ecx, 0xffffffff
je 0x1801a41e
cmp eax, 0xffffffff
je 0x1801a41e
movzx ecx, word [edi + ecx*2]
mov edx, 0x3441
cmp dx, cx
je 0x1801a41e
cmp dx, word [edi + eax*2]
jne 0x1801a41e
mov word [edi + eax*2], cx
inc esi
jmp 0x1801a340