Function at 0x440c80
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x52bdc2
mov eax, dword fs:[0]
push eax
sub esp, 0xff8
mov eax, dword [0x56b1dc]
xor eax, esp
mov dword [esp + 0xff4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x56b1dc]
xor eax, esp
push eax
lea eax, [esp + 0x100c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x101c]
lea esi, [esp + 0x2c]
mov dword [esp + 0x48], ebp
call fcn.004013f0
push eax
lea eax, [esp + 0x28]
push eax
mov ebx, str.unispim6wordlib
mov dword [esp + 0x101c], 0
call fcn.004036c0
add esp, 8
lea edi, [ebp + 0x14]
mov byte [esp + 0x1014], 1
call fcn.00401dd0
mov byte [esp + 0x1014], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440d27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1014], esi
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440d4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push edi
push ecx
mov ebx, str.user.uwl
call fcn.004036c0
add esp, 8
lea edi, [ebp + 0x18]
mov dword [esp + 0x1014], 2
call fcn.00401dd0
mov dword [esp + 0x1014], esi
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440d99
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi]
xor ebp, ebp
push ebp
push eax
call fcn.00501abc
add esp, 8
cmp eax, esi
jne 0x440db2
mov eax, esi
jmp 0x441278
mov edi, dword [edi]
push 0x53709c
push edi
call fcn.00501b96
mov edi, eax
add esp, 8
cmp edi, ebp
mov dword [esp + 0x4c], edi
je 0x440dab
push ebp
push 0x48
push edi
mov dword [esp + 0x44], ebp
call fcn.005015da
push edi
push 4
lea ecx, [esp + 0x4c]
push 1
push ecx
call fcn.005018fb
mov esi, dword [esp + 0x54]
add esp, 0x1c
cmp esi, ebp
jne 0x440dfa
xor eax, eax
jmp 0x441278
push 0x3e7
lea edx, [esp + 0x55]
push ebp
push edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x5c], 0
call fcn.00508d80
push 0x3ff
lea eax, [esp + 0x449]
push ebp
push eax
mov byte [esp + 0x450], 0
call fcn.00508d80
add esp, 0x18
cmp esi, ebp
mov dword [esp + 0x24], ebp
jle 0x44126b
mov esi, 0xc10
mov dword [esp + 0x2c], esi
push ebp
lea ecx, [esi - 4]
push ecx
push edi
call fcn.005015da
push edi
push 4
lea edx, [esp + 0x3c]
push 1
push edx
call fcn.005018fb
push ebp
push esi
push edi
call fcn.005015da
mov eax, dword [esp + 0x50]
push edi
push eax
lea ecx, [esp + 0x468]
push 1
push ecx
call fcn.005018fb
add esp, 0x38
cmp dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ebp
jle 0x44124c
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + edx + 0x438]
mov edx, ecx
and edx, 0xfff
sub edx, 0x109
mov eax, 0x3e0f83e1
mul edx
mov esi, edx
shr ecx, 0xc
shr esi, 5
add esi, 2
and ecx, 0xfff
sub ecx, 0x64
mov edi, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], edi
jne 0x440edc
mov dword [esp + 0x18], 1
jmp 0x440eee
lea eax, [edi - 0xb]
cmp eax, 0x2704
ja 0x440ef2
mov dword [esp + 0x18], 0xa
mov edi, dword [esp + 0x18]
mov edx, dword [0x5759e8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5759e8
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
xor ebx, ebx
cmp esi, ebp
mov dword [esp + 0x1014], 3
mov dword [esp + 0x3c], ebx
jle 0x441090
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ebx*2]
mov ax, word [esp + edx + 0x43c]
mov word [esp + 0x44], ax
mov ecx, dword [esp + 0x44]
push ecx
lea edi, [esp + 0x24]
call fcn.004406c0
mov byte [esp + 0x1014], 4
mov ebp, dword [esp + 0x20]
mov ecx, 0x536e88
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x440f7d
test dx, dx
je 0x440f79
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x440f7d
add eax, 4
add ecx, 4
test dx, dx
jne 0x440f57
xor eax, eax
jmp 0x440f82
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x441051
test ebx, ebx
jne 0x441027
mov esi, dword [esp + 0x14]
lea eax, [ebp - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x440fdf
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x441018
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x441018
call fcn.004020b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x440fd0
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
lea eax, [ebp - 0x10]
mov byte [esp + 0x1014], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441007
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 1
cmp ebx, esi
mov dword [esp + 0x3c], ebx
jl 0x440f22
jmp 0x44108c
mov ebx, dword [ebp - 0xc]
push ebp
lea eax, [esp + 0x18]
call fcn.004026c0
jmp 0x440fd7
push 1
push str.wysczr
lea ecx, [esp + 0x1c]
push ecx
call fcn.00411670
mov eax, dword [esp + 0x20]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea edx, [esp + 0x1c]
push edx
call fcn.00411670
mov ebp, dword [esp + 0x20]
jmp 0x440fe3
push 0x536e88
mov ebx, 5
lea eax, [esp + 0x18]
call fcn.004026c0
mov byte [esp + 0x1014], 3
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44108c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ecx, 0x536e88
mov eax, ebx
xor ebp, ebp
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4410c6
cmp dx, bp
je 0x4410c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4410c6
add eax, 4
add ecx, 4
cmp dx, bp
jne 0x4410a0
xor eax, eax
jmp 0x4410cb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
sete al
test al, al
je 0x441100
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + esi*4 + 4]
lea eax, [ebx - 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1014], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x44122a
push 0x64
lea ecx, [esp + 0x54]
push ebp
push ecx
call fcn.00508d80
mov ebx, dword [esp + 0x28]
lea eax, [esi + esi]
push eax
add eax, ebx
lea edx, [esp + eax + 0x44c]
push edx
lea eax, [esp + 0x64]
push eax
call fcn.00505700
mov eax, 0x5a814afd
imul edi
add dword [esp + 0x48], 1
sub edx, edi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x63
push 0x7ce
lea edx, [esp + 0x856]
push ebp
push edx
add edi, ecx
mov word [esp + 0x85c], bp
call fcn.00508d80
add esp, 0x24
push 0x3e8
lea eax, [esp + 0x83c]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x5c]
push ecx
push ebp
push 0x3a8
call dword [0x531340]
lea eax, [esp + 0x838]
lea ecx, [eax + 2]
mov edi, edi
mov dx, word [eax]
add eax, 2
cmp dx, bp
jne 0x441190
sub eax, ecx
sar eax, 1
cmp eax, 1
je 0x441203
cmp edi, 0x270f
ja 0x441203
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x83c]
call fcn.00402550
mov ecx, dword [esp + 0x48]
push edi
lea edx, [esp + 0x44]
mov byte [esp + 0x1018], 5
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push edx
lea edx, [esp + 0x1c]
push edx
call eax
mov byte [esp + 0x1014], 3
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441203
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1014], 0xffffffff
mov eax, dword [esp + 0x14]
lea ecx, [ebx + esi*4 + 4]
add eax, 0xfffffff0
mov dword [esp + 0x1c], ecx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x441236
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x28]
jl 0x440e92
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
add eax, 1
add esi, 0x400
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], eax
jl 0x440e4a
push edi
call fcn.00501c1b
mov eax, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x100c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xff4]
xor ecx, esp
call fcn.004ff939
add esp, 0x1004
ret 4