Function at 0x4412b0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x52bd49
mov eax, dword fs:[0]
push eax
mov eax, 0x101c
call fcn.0051a950
mov eax, dword [0x56b1dc]
xor eax, esp
mov dword [esp + 0x1018], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x56b1dc]
xor eax, esp
push eax
lea eax, [esp + 0x1030]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x1040]
lea esi, [esp + 0x34]
mov dword [esp + 0x60], ebp
call fcn.004013f0
push eax
lea eax, [esp + 0x28]
push eax
mov ebx, str.unispim6wordlib
mov dword [esp + 0x1040], 0
call fcn.004036c0
add esp, 8
lea esi, [ebp + 0x14]
mov edi, esi
mov byte [esp + 0x1038], 1
call fcn.00401dd0
mov byte [esp + 0x1038], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44135b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1038], 0xffffffff
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441386
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push esi
push ecx
mov ebx, str.user.uwl
call fcn.004036c0
add esp, 8
lea edi, [ebp + 0x18]
mov dword [esp + 0x1038], 2
call fcn.00401dd0
mov dword [esp + 0x1038], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4413d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi]
xor ebx, ebx
push ebx
push eax
call fcn.00501abc
add esp, 8
cmp eax, 0xffffffff
jne 0x4413f2
or eax, 0xffffffff
jmp 0x441e08
mov edi, dword [edi]
push 0x53709c
push edi
call fcn.00501b96
mov edi, eax
add esp, 8
cmp edi, ebx
mov dword [esp + 0x58], edi
je 0x4413ea
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0xa
mov dword [esp + 0x54], ebx
lea ecx, [esp + 0x24]
push esi
push ecx
mov ebx, str.ci_cache.dat
mov dword [esp + 0x1040], 3
call fcn.004036c0
mov eax, dword [eax]
push 0x53709c
push eax
call fcn.00501b96
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0x10
mov dword [esp + 0x28], esi
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x441479
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor ebx, ebx
cmp esi, ebx
je 0x4417ca
push ebx
push 4
push esi
mov dword [esp + 0x2c], ebx
call fcn.005015da
push esi
push 4
lea ecx, [esp + 0x34]
push 1
push ecx
call fcn.005018fb
add esp, 0x1c
cmp dword [esp + 0x20], ebx
jle 0x4417c1
push ebx
push 0xc
push esi
call fcn.005015da
add esp, 0xc
cmp dword [esp + 0x20], ebx
jle 0x4417c1
mov ebx, dword [esp + 0x28]
push ebx
push 4
lea edx, [esp + 0x34]
push 1
push edx
mov dword [esp + 0x3c], 0
call fcn.005018fb
mov edi, dword [esp + 0x3c]
mov edx, dword [0x5759e8]
mov ebp, edi
and edi, 0xff
lea eax, [edi*4]
mov ecx, 0xfffffffc
sub ecx, eax
add dword [esp + 0x30], ecx
mov eax, dword [edx + 0xc]
add esp, 0x10
mov ecx, 0x5759e8
shr ebp, 8
call eax
cmp dword [esp + 0x1044], 0
je 0x4415fc
lea edx, [eax + 0x10]
mov dword [esp + 0x1c], edx
mov byte [esp + 0x1038], 4
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or eax, ecx
jge 0x44154e
mov ecx, edi
lea eax, [esp + 0x1c]
call fcn.00402120
mov edx, dword [esp + 0x1c]
push ebx
lea ecx, [edi + edi]
push ecx
push 1
push edx
call fcn.005018fb
mov edx, dword [esp + 0x2c]
add esp, 0x10
cmp edi, 0xffffffff
mov eax, edi
jne 0x441585
test edx, edx
jne 0x441571
xor eax, eax
jmp 0x44158d
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441576
sub eax, esi
sar eax, 1
test eax, eax
jl 0x441996
cmp eax, dword [edx - 8]
jg 0x441996
mov dword [edx - 0xc], eax
mov edx, dword [esp + 0x1c]
lea ebx, [esp + 0x1c]
mov word [edx + eax*2], 0
call fcn.0040d970
mov edi, eax
call fcn.0040d9f0
mov esi, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0x44]
call fcn.004420e0
test eax, eax
jne 0x4415e5
push ebp
mov eax, esi
lea ebx, [esp + 0x44]
call fcn.00441ef0
mov byte [esp + 0x1038], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
jmp 0x441793
mov dword [eax + 4], ebp
mov byte [esp + 0x1038], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
jmp 0x441793
lea esi, [eax + 0x10]
mov dword [esp + 0x30], esi
mov byte [esp + 0x1038], 5
mov edx, dword [0x5759e8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5759e8
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x1038], 6
mov eax, dword [esi - 8]
add edi, edi
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x44164c
mov ecx, edi
lea eax, [esp + 0x30]
call fcn.00414820
mov esi, dword [esp + 0x30]
push ebx
push edi
push 1
push esi
call fcn.005018fb
add esp, 0x10
cmp edi, 0xffffffff
jne 0x44167b
test esi, esi
jne 0x441666
xor edi, edi
jmp 0x441683
mov edi, esi
lea ecx, [edi + 1]
jmp 0x441670
mov al, byte [edi]
add edi, 1
test al, al
jne 0x441670
sub edi, ecx
test edi, edi
jl 0x441996
cmp edi, dword [esi - 8]
jg 0x441996
mov ebx, dword [0x531340]
push 0
mov dword [esi - 0xc], edi
push 0
mov byte [edi + esi], 0
mov eax, dword [esi - 0xc]
push eax
push esi
push 0
push 0x3a8
call ebx
mov edi, eax
test edi, edi
je 0x44172d
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, edi
or eax, edx
jge 0x4416d5
mov ecx, edi
lea eax, [esp + 0x18]
call fcn.00402120
mov ecx, dword [esp + 0x18]
mov eax, dword [esi - 0xc]
push edi
push ecx
push eax
push esi
push 0
push 0x3a8
call ebx
cmp edi, 0xffffffff
mov edx, dword [esp + 0x18]
mov eax, edi
jne 0x44170f
test edx, edx
jne 0x4416f8
xor eax, eax
jmp 0x441717
mov eax, edx
lea edi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441700
sub eax, edi
sar eax, 1
test eax, eax
jl 0x441996
cmp eax, dword [edx - 8]
jg 0x441996
mov dword [edx - 0xc], eax
mov ecx, dword [esp + 0x18]
mov word [ecx + eax*2], 0
lea ebx, [esp + 0x18]
call fcn.0040d970
mov edi, eax
call fcn.0040d9f0
mov edi, dword [esp + 0x18]
push edi
lea ecx, [esp + 0x44]
call fcn.004420e0
test eax, eax
jne 0x44175d
push ebp
mov eax, edi
lea ebx, [esp + 0x44]
call fcn.00441ef0
jmp 0x441760
mov dword [eax + 4], ebp
mov byte [esp + 0x1038], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x441788
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1038], 3
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4417ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x20], 0
jg 0x4414c2
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
xor ebx, ebx
push esi
call fcn.00501c1b
add esp, 4
push ebx
push 0x48
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.005015da
push edi
push 4
lea ecx, [esp + 0x44]
push 1
push ecx
call fcn.005018fb
mov esi, dword [esp + 0x4c]
add esp, 0x1c
cmp esi, ebx
je 0x441d61
push 0x3e7
lea edx, [esp + 0x79]
push ebx
push edx
mov dword [esp + 0x48], ebx
mov byte [esp + 0x80], 0
call fcn.00508d80
push 0x3ff
lea eax, [esp + 0x46d]
push ebx
push eax
mov byte [esp + 0x474], 0
call fcn.00508d80
add esp, 0x18
cmp esi, ebx
mov dword [esp + 0x24], ebx
jle 0x441d5b
mov dword [esp + 0x28], 0xc10
jmp 0x441850
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
push 0
lea ecx, [edi - 4]
push ecx
push esi
call fcn.005015da
push esi
push 4
lea edx, [esp + 0x50]
push 1
push edx
call fcn.005018fb
push 0
push edi
push esi
call fcn.005015da
mov eax, dword [esp + 0x64]
push esi
push eax
lea ecx, [esp + 0x48c]
push 1
push ecx
call fcn.005018fb
mov ecx, dword [esp + 0x74]
lea eax, [ecx - 4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add esp, 0x38
test ecx, ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x68], eax
jle 0x441d3e
jmp 0x4418c0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + edx + 0x45c]
and ecx, 0xfff
sub ecx, 0x105
mov eax, 0xfc0fc0fd
mul ecx
mov eax, dword [esp + 0x68]
mov esi, edx
shr esi, 7
add esi, 2
cmp esi, eax
mov dword [esp + 0x38], esi
jle 0x4418f8
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [0x5759e8]
mov edx, dword [eax + 0xc]
mov ecx, 0x5759e8
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
test esi, esi
mov byte [esp + 0x1038], 7
mov dword [esp + 0x5c], 0
jle 0x441aa6
jmp 0x441930
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
lea ecx, [eax + esi*2]
mov dx, word [esp + ecx + 0x460]
mov word [esp + 0x70], dx
mov eax, dword [esp + 0x70]
push eax
lea edi, [esp + 0x24]
call fcn.004406c0
mov byte [esp + 0x1038], 8
mov ebp, dword [esp + 0x20]
mov ecx, 0x536e88
mov eax, ebp
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4419a0
test dx, dx
je 0x441992
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4419a0
add eax, 4
add ecx, 4
test dx, dx
jne 0x441970
xor eax, eax
jmp 0x4419a5
push 0x80070057
call fcn.004026a0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x441a6b
test esi, esi
jne 0x441a08
mov esi, dword [esp + 0x18]
lea eax, [ebp - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x441a30
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4419f9
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x4419f9
call fcn.004020b0
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x4419f0
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0x10
mov dword [esp + 0x18], ebx
jmp 0x441a2c
mov ebx, dword [ebp - 0xc]
push ebp
lea eax, [esp + 0x1c]
call fcn.004026c0
jmp 0x441a2c
push 1
push str.wysczr
lea eax, [esp + 0x20]
push eax
call fcn.00411670
mov eax, dword [esp + 0x20]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411670
mov ebp, dword [esp + 0x20]
lea eax, [ebp - 0x10]
mov byte [esp + 0x1038], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x441a54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x5c]
add eax, 1
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
jl 0x441930
jmp 0x441aa6
push 0x536e88
mov ebx, 5
lea eax, [esp + 0x1c]
call fcn.004026c0
mov byte [esp + 0x1038], 7
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 0x441aa6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
mov ecx, 0x536e88
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x441ad7
test dx, dx
je 0x441ad3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x441ad7
add eax, 4
add ecx, 4
test dx, dx
jne 0x441ab1
xor eax, eax
jmp 0x441adc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x441b01
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
lea esi, [ecx + edx*4 + 4]
mov byte [esp + 0x1038], 3
lea eax, [edi - 0x10]
jmp 0x441d17
push 0x64
lea ecx, [esp + 0x78]
push 0
push ecx
call fcn.00508d80
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
lea eax, [ebx + ebx]
push eax
add eax, edi
lea edx, [esp + eax + 0x470]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.00505700
add dword [esp + 0x44], 1
add esp, 0x18
cmp dword [esp + 0x1044], 0
je 0x441be1
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x44]
call fcn.004420e0
test eax, eax
je 0x441b61
mov esi, dword [eax + 4]
test esi, esi
jne 0x441b68
mov esi, 1
jmp 0x441b78
lea edx, [esi - 0xb]
cmp edx, 0x2704
ja 0x441b78
mov esi, 0xa
lea eax, [esp + 0x74]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441b80
sub eax, edx
sar eax, 1
cmp eax, 1
je 0x441d04
cmp esi, 0x270f
ja 0x441d04
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x78]
call fcn.00402550
mov ecx, dword [esp + 0x60]
push esi
lea eax, [esp + 0x38]
mov byte [esp + 0x103c], 9
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push eax
lea eax, [esp + 0x20]
push eax
call edx
mov byte [esp + 0x1038], 7
mov eax, dword [esp + 0x34]
jmp 0x441ce8
push 0x7ce
lea ecx, [esp + 0x862]
push 0
push ecx
mov word [esp + 0x868], 0
call fcn.00508d80
add esp, 0xc
push 0x3e8
lea edx, [esp + 0x860]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x80]
push eax
push 0
push 0x3a8
call dword [0x531340]
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x860]
call fcn.00402550
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x44]
call fcn.004420e0
mov esi, eax
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x441c65
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x441c70
mov esi, dword [esi + 4]
test esi, esi
jne 0x441c77
mov esi, 1
jmp 0x441c87
lea ecx, [esi - 0xb]
cmp ecx, 0x2704
ja 0x441c87
mov esi, 0xa
lea eax, [esp + 0x85c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441c91
sub eax, edx
sar eax, 1
cmp eax, 1
je 0x441d04
cmp esi, 0x270f
ja 0x441d04
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x860]
call fcn.00402550
mov ecx, dword [esp + 0x60]
push esi
lea edx, [esp + 0x68]
mov byte [esp + 0x103c], 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push edx
lea edx, [esp + 0x20]
push edx
call eax
mov byte [esp + 0x1038], 7
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441d04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1038], 3
mov eax, dword [esp + 0x18]
lea esi, [edi + ebx*4 + 4]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x1c], esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441d34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, dword [esp + 0x3c]
jl 0x4418c0
mov eax, dword [esp + 0x24]
add dword [esp + 0x28], 0x400
add eax, 1
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
jl 0x441850
mov edi, dword [esp + 0x58]
xor ebx, ebx
push edi
call fcn.00501c1b
mov dword [esp + 0x103c], 0xffffffff
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
add esp, 4
cmp esi, ecx
je 0x441dca
mov ecx, dword [esi + 0xc]
lea edi, [esi + 0xc]
push ecx
lea ecx, [esp + 0x44]
call fcn.00442490
mov edx, dword [esi + 0x10]
push edx
lea ecx, [esp + 0x44]
call fcn.00442490
mov eax, dword [esi]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441dbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x4c]
cmp eax, ebx
mov dword [esp + 0x44], ebx
je 0x441deb
mov esi, dword [eax]
push eax
call fcn.004ff948
add esp, 4
cmp esi, ebx
mov eax, esi
jne 0x441dd6
mov ecx, dword [esp + 0x54]
cmp ecx, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], ecx
je 0x441e04
push ecx
call fcn.004ff948
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1030]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1018]
xor ecx, esp
call fcn.004ff939
add esp, 0x1028
ret 8