Function at 0x1801b1c0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50c
mov eax, dword [0x1804e020]
xor eax, esp
mov dword [esp + 0x508], eax
push ebx
lea eax, [esp + 0x48]
push esi
xor esi, esi
mov dword [esp + 0x48], eax
or eax, 0xffffffff
push edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
cmp dword [0x18053834], esi
jne 0x1801b786
mov dword [0x18053834], 1
mov dword [esp + 0x18], esi
cmp eax, 0xffffffff
je 0x1801b223
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov ecx, esi
lea esi, [esp + 0x28]
lea ebx, [esp + 0x80]
call fcn.18019b80
cmp eax, 1
jne 0x1801b67b
push 0
push 0x20
push 0x8000
mov ecx, ebx
push ecx
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.MSVCR90.dll__wsopen_s]
add esp, 0x14
test eax, eax
jne 0x1801b6b8
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
push 0x280
lea ecx, [esp + 0x28c]
push ecx
mov ebx, eax
push eax
mov dword [esp + 0x4c], ebx
call dword [sym.imp.MSVCR90.dll__read]
mov esi, eax
add esp, 0xc
cmp esi, 0x280
jge 0x1801b2b3
push ebx
call dword [sym.imp.MSVCR90.dll__eof]
add esp, 4
test eax, eax
jle 0x1801b6b8
mov dword [esp + 0x3c], 2
cmp esi, 0x280
jne 0x1801b6b8
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x28c]
push 0x180427f8
push eax
mov dword [esp + 0x44], 0
call dword [sym.imp.MSVCR90.dll_strtok_s]
mov esi, eax
add esp, 0xc
test esi, esi
je case.default.0x1801b3ea
mov edi, dword [sym.imp.MSVCR90.dll__strnicmp]
lea esp, [esp]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1801b2f5
mov ecx, dword [esp + 0x24]
push 0x12
sub eax, edx
lea edx, [ecx + eax + 1]
push str.Unicode_version_:
push esi
mov dword [esp + 0x30], edx
call edi
add esp, 0xc
test eax, eax
jne 0x1801b369
xor ebx, ebx
add esi, 0x12
cmp byte [esi], bl
je 0x1801b342
movzx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x1801b33c
mov cl, byte [esi]
mov byte [esp + ebx + 0x6c], cl
inc ebx
inc esi
cmp byte [esi], 0
jne 0x1801b324
lea edx, [esp + 0x6c]
push edx
mov byte [esp + ebx + 0x70], 0
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp dword [esp + 0x28], eax
jne case.default.0x1801b3ea
mov dword [esp + 0x2c], 1
jmp 0x1801b37a
push 0xd
push str.Data_count_:
push esi
call edi
add esp, 0xc
test eax, eax
je 0x1801b39e
lea eax, [esp + 0x38]
push eax
push 0x180427f8
push 0
call dword [sym.imp.MSVCR90.dll_strtok_s]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1801b2f0
jmp case.default.0x1801b3ea
xor ebx, ebx
add esi, 0xd
cmp byte [esi], bl
je 0x1801b3ca
mov edi, dword [sym.imp.MSVCR90.dll_isdigit]
lea ecx, [ecx]
movzx ecx, byte [esi]
push ecx
call edi
add esp, 4
test eax, eax
je 0x1801b3c4
mov dl, byte [esi]
mov byte [esp + ebx + 0x58], dl
inc ebx
inc esi
cmp byte [esi], 0
jne 0x1801b3b0
lea eax, [esp + 0x58]
push eax
mov byte [esp + ebx + 0x5c], 0
call dword [sym.imp.MSVCR90.dll_atoi]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], eax
cmp ecx, 3
ja case.default.0x1801b3ea
jmp dword [ecx*4 + 0x1801b7e4]
cmp eax, 0x4000
jmp 0x1801b419
cmp eax, 0xd00
jmp 0x1801b419
cmp eax, 0x1900
jne 0x1801b6b8
mov dword [esp + 0x14], 0x6400
jmp case.default.0x1801b3ea
cmp eax, 0x6f00
jne 0x1801b6b8
cmp dword [esp + 0x2c], 0
je 0x1801b6b8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
push 0
push ecx
push edx
call dword [sym.imp.MSVCR90.dll__lseek]
add esp, 0xc
test eax, eax
jl 0x1801b44b
mov dword [esp + 0x3c], 0
mov ebx, dword [esp + 0x14]
lea esi, [ebx + ebx]
push esi
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
push esi
mov edi, eax
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov esi, eax
test edi, edi
je 0x1801b6aa
test esi, esi
je 0x1801b6a7
test ebx, ebx
jle 0x1801b4a9
mov ecx, edi
sub ecx, esi
mov edx, ebx
jmp 0x1801b490
mov ebx, 0x3441
mov word [ecx + eax], bx
mov ebx, 0xfffd
mov word [eax], bx
add eax, 2
sub edx, 1
jne 0x1801b490
xor ebx, ebx
cmp dword [esp + 0x14], ebx
jle 0x1801b500
mov ecx, dword [esp + 0x40]
push 2
lea eax, [esp + 0x34]
push eax
push ecx
mov dword [esp + 0x3c], 0
call dword [sym.imp.MSVCR90.dll__read]
add esp, 0xc
cmp eax, 2
jge 0x1801b4f0
mov edx, dword [esp + 0x40]
push edx
call dword [sym.imp.MSVCR90.dll__eof]
xor ecx, ecx
add esp, 4
test eax, eax
setg cl
inc ecx
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov dx, word [esp + 0x30]
mov word [edi + ebx*2], dx
inc ebx
cmp ebx, dword [esp + 0x14]
jl 0x1801b4b1
xor eax, eax
cmp dword [esp + 0x3c], eax
jne 0x1801b696
mov ecx, dword [esp + 0x18]
cmp ecx, 3
ja case.default.0x1801b519
jmp dword [ecx*4 + 0x1801b7f4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [0x180537ac], edi
mov dword [0x180537b8], esi
mov dword [esp + 0x34], eax
mov ebx, 1
xor ecx, ecx
test esi, esi
je 0x1801b67b
jmp 0x1801b550
mov eax, ebx
imul eax, ecx
cmp eax, dword [esp + 0x14]
jge 0x1801b67b
mov edx, dword [esp + 0x18]
cmp edx, 3
jne 0x1801b629
cmp ecx, 0x6c00
jne 0x1801b617
add dword [esp + 0x10], 0x700
jmp 0x1801b650
push esi
mov dword [0x180537b4], edi
call dword [sym.imp.MSVCR90.dll_free]
mov esi, dword [0x180537b8]
add esp, 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0xa000
jmp 0x1801b53c
push esi
mov dword [0x18053758], edi
call dword [sym.imp.MSVCR90.dll_free]
mov esi, dword [0x180537b8]
add esp, 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0xe000
mov ebx, 4
jmp 0x1801b541
mov ecx, dword [esp + 0x14]
mov dword [0x180537b0], edi
mov dword [0x180537bc], esi
mov dword [esp + 0x1c], 0x4000
mov dword [esp + 0x10], 0x3400
mov dword [esp + 0x34], ecx
jmp 0x1801b53c
cmp ecx, 2
jne 0x1801b53c
lea ebx, [ecx + 2]
jmp 0x1801b541
cmp ecx, 0x6d00
jne 0x1801b650
add dword [esp + 0x10], 0x5100
jmp 0x1801b650
cmp edx, 1
jne 0x1801b650
cmp ecx, 0x700
jne 0x1801b640
add dword [esp + 0x10], 0x100
jmp 0x1801b650
cmp ecx, 0x800
jne 0x1801b650
add dword [esp + 0x10], 0x5200
movzx eax, word [edi + eax*2]
mov edx, 0x3441
cmp ax, dx
je 0x1801b675
movzx eax, ax
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x34]
jge 0x1801b675
mov edx, dword [esp + 0x10]
add edx, ecx
mov word [esi + eax*2], dx
inc ecx
jmp 0x1801b550
mov esi, dword [esp + 0x18]
inc esi
cmp esi, 3
mov dword [esp + 0x18], esi
jg 0x1801b740
mov eax, dword [esp + 0x20]
jmp 0x1801b214
push edi
mov edi, dword [sym.imp.MSVCR90.dll_free]
call edi
add esp, 4
push esi
call edi
jmp 0x1801b6b5
push edi
jmp 0x1801b6af
test esi, esi
je 0x1801b6b8
push esi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [0x180537ac]
mov esi, dword [sym.imp.MSVCR90.dll_free]
xor edi, edi
cmp eax, edi
je 0x1801b6cf
push eax
call esi
add esp, 4
mov eax, dword [0x180537b8]
cmp eax, edi
je 0x1801b6de
push eax
call esi
add esp, 4
mov eax, dword [0x180537b0]
cmp eax, edi
je 0x1801b6ed
push eax
call esi
add esp, 4
mov eax, dword [0x180537bc]
cmp eax, edi
je 0x1801b6fc
push eax
call esi
add esp, 4
mov eax, dword [0x180537b4]
cmp eax, edi
je 0x1801b70b
push eax
call esi
add esp, 4
mov eax, dword [0x18053758]
cmp eax, edi
je 0x1801b71a
push eax
call esi
add esp, 4
mov dword [0x180537ac], edi
mov dword [0x180537b8], edi
mov dword [0x180537b0], edi
mov dword [0x180537bc], edi
mov dword [0x180537b4], edi
mov dword [0x18053758], edi
jmp 0x1801b773
cmp dword [0x180537ac], 0
je 0x1801b773
cmp dword [0x180537b0], 0
je 0x1801b773
mov eax, dword [esp + 0x28]
push eax
mov dword [0x18053834], 2
call fcn.18019f20
add esp, 4
call fcn.1801ab30
call sym.HncBL90.dll_LoadUniYi2UniSurrogatePuaTbl
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x1801b786
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov eax, dword [esp + 0x48]
mov edi, dword [sym.imp.MSVCR90.dll_free]
xor esi, esi
test eax, eax
jle 0x1801b7bb
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + esi*4]
test eax, eax
je 0x1801b7b2
sub eax, 8
cmp dword [eax], 0xdddd
jne 0x1801b7b2
push eax
call edi
add esp, 4
mov eax, dword [esp + 0x48]
inc esi
cmp esi, eax
jl 0x1801b796
cmp eax, 2
jle 0x1801b7ca
mov edx, dword [esp + 0x4c]
push edx
call edi
add esp, 4
mov ecx, dword [esp + 0x514]
mov eax, dword [0x18053834]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1802929c
mov esp, ebp
pop ebp
ret