Function at 0x441541
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x144
mov eax, dword [esp + 0x148]
or dword [esp + 4], 0xffffffff
or dword [esp + 0x28], 0xffffffff
or dword [esp + 0x1c], 0xffffffff
mov edx, dword [esp + 0x154]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x15c]
xor ebx, ebx
add esi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], ebx
push edi
mov edi, ecx
lea ecx, [esi - 1]
mov dword [esp + 0x30], ecx
mov ebp, edi
mov dword [esp + 0x18], ebp
test edx, 0xe20f5a6f
je 0x4415a1
push 0xfffffffffffffffd
jmp 0x441e68
test edi, edi
je 0x441e66
test eax, eax
je 0x441e66
mov ecx, dword [esp + 0x16c]
cmp dword [esp + 0x168], ebx
jne 0x4415c9
test ecx, ecx
jg 0x441e66
test ecx, ecx
jns 0x4415d4
push 0xfffffffffffffff1
jmp 0x441e68
movzx eax, word [edi + 0x18]
add eax, edi
mov dword [esp + 0xe0], ebx
cmp dword [edi + 0x20], 0
mov ebx, 0x4288e0
mov dword [esp + 0x70], eax
movzx eax, word [edi + 0x1c]
cmovne ebx, dword [edi + 0x20]
cmp dword [edi], 0x50435245
mov dword [esp + 0x68], eax
movzx eax, word [edi + 0x1a]
mov dword [esp + 0x6c], eax
mov eax, 0xf4240
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], ebx
je 0x44164b
lea eax, [esp + 0x124]
mov ecx, edi
push eax
push 0
lea edx, [esp + 0x104]
call fcn.0043b9b9
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x441644
push 0xfffffffffffffffc
jmp 0x441e68
mov edx, dword [esp + 0x164]
mov ecx, dword [ebp + 8]
mov eax, ecx
or eax, edx
shr ecx, 0x12
shr eax, 4
and ecx, 1
and eax, 1
mov dword [esp + 0x3c], ecx
movzx ecx, word [ebp + 0x1c]
mov dword [esp + 0x44], eax
movzx eax, word [ebp + 0xc]
shr eax, 3
and eax, 1
mov dword [esp + 0xf8], eax
movzx eax, word [ebp + 0x1a]
imul ecx, eax
movzx eax, word [ebp + 0x18]
push 2
add ecx, edi
xor edi, edi
add eax, ecx
inc edi
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x160]
add eax, ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
shr eax, 5
and eax, edi
shr ecx, 0xf
mov dword [esp + 0x9c], eax
and ecx, edi
mov eax, dword [ebp + 8]
shr eax, 0xb
and eax, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], eax
mov eax, dword [ebp + 8]
shr eax, 0x1d
and eax, edi
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
shr eax, 0x19
and eax, edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 7
and eax, edi
mov dword [esp + 0x88], eax
mov eax, edx
shr eax, 8
and eax, edi
mov dword [esp + 0x8c], eax
mov eax, edx
shr eax, 0xa
and eax, edi
mov dword [esp + 0xa0], eax
mov eax, edx
shr eax, 0x1c
and eax, edi
mov dword [esp + 0xa4], eax
mov eax, edx
and eax, 0x8000000
pop edi
cmovne ecx, edi
lea eax, [ebx + 0x340]
xor edi, edi
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x7c], eax
mov ecx, 0x1800000
mov dword [esp + 0xa4], edi
mov eax, edx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], edi
and eax, ecx
je 0x4417a8
cmp eax, 0x800000
je 0x44179c
cmp eax, 0x1000000
je 0x4417c0
push 0xffffffffffffffe9
jmp 0x441e68
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], ebx
jmp 0x4417ca
mov eax, dword [ebp + 8]
test ecx, eax
je 0x4417c0
xor ebx, ebx
shr eax, 0x17
inc ebx
and eax, ebx
mov dword [esp + 0xa8], eax
jmp 0x4417ca
xor ebx, ebx
mov dword [esp + 0xa8], edi
inc ebx
mov ecx, 0x700000
test ecx, edx
jne 0x4417d8
mov eax, dword [ebp + 8]
jmp 0x4417da
mov eax, edx
and eax, ecx
je 0x441804
cmp eax, 0x100000
je 0x441829
cmp eax, 0x200000
je 0x441825
cmp eax, 0x300000
je 0x44181e
cmp eax, 0x400000
je 0x441804
cmp eax, 0x500000
jne 0x441795
push 2
pop ebx
mov dword [esp + 0x60], ebx
cmp dword [esp + 0xc4], edi
je 0x44185f
test byte [ebp + 0xc], 1
je 0x44185f
push 0xfffffffffffffff3
jmp 0x441e68
mov ecx, 0xd0a
jmp 0x44182c
push 0xa
jmp 0x44182b
push 0xd
pop ecx
mov ebx, edi
mov dword [esp + 0x60], ebx
cmp ecx, 0xff
jle 0x441851
mov eax, ecx
mov dword [esp + 0x64], 2
sar eax, 8
mov byte [esp + 0x74], al
mov byte [esp + 0x75], cl
jmp 0x441808
mov dword [esp + 0x64], 1
mov byte [esp + 0x74], cl
jmp 0x441808
mov eax, dword [ebp + 8]
and eax, 7
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x16c]
push 3
cdq
pop edi
idiv edi
mov edi, dword [esp + 0x16c]
movzx eax, word [ebp + 0x12]
sub edi, edx
test ax, ax
je 0x4418c9
mov ecx, eax
mov eax, edi
push 3
cdq
pop ebp
idiv ebp
cmp ecx, eax
jl 0x4418c9
lea eax, [ecx + 1]
imul edi, eax, 3
mov ecx, edi
shl ecx, 2
call dword [0x406e24]
mov ebp, eax
mov dword [esp + 0x54], ebp
test ebp, ebp
jne 0x4418bb
push 0xfffffffffffffffa
jmp 0x441e68
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x28], 1
jmp 0x4418d4
mov ebp, dword [esp + 0x168]
mov dword [esp + 0x54], ebp
lea eax, [edi + edi]
and dword [esp + 0x80], 0
cdq
push 3
pop ecx
idiv ecx
mov ecx, dword [esp + 0x18]
or dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
movzx eax, word [ecx + 0x10]
lea eax, [eax*2 + 2]
cmp eax, dword [esp + 0x16c]
cmovg eax, edi
mov dword [esp + 0xec], eax
test ebp, ebp
je 0x44194c
cdq
lea edi, [edi*4]
sub eax, edx
xor ecx, ecx
sar eax, 1
inc ecx
add edi, ebp
sub ecx, eax
lea eax, [edi + ecx*4]
sub edi, 4
cmp edi, eax
jb 0x441948
or dword [edi], 0xffffffff
sub edi, 4
cmp edi, eax
jae 0x441936
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x44], 0
jne 0x44197c
test byte [ecx + 0xc], 2
je 0x44197c
movzx eax, word [ecx + 0x14]
movzx edx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
je 0x44197c
mov eax, dword [esp + 0x78]
movzx edx, byte [eax + edx]
mov dword [esp + 0x14], edx
test byte [ecx + 0xc], 4
je 0x4419a7
movzx eax, word [ecx + 0x16]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ecx + 0x100]
mov dword [esp + 0x2c], eax
and dword [esp + 0x164], 0x4000000
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
test ebp, ebp
je 0x441a15
mov eax, dword [esp + 0xec]
xor edi, edi
and dword [esp + 0xf4], edi
lea eax, [eax*4]
add eax, ebp
mov ecx, eax
sub ecx, ebp
add ecx, 3
shr ecx, 2
cmp ebp, eax
cmova ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x441a11
or dword [ebp], 0xffffffff
inc edi
lea ebp, [ebp + 4]
cmp edi, ecx
jb 0x4419f6
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0
je 0x441a75
mov edi, esi
cmp esi, edx
jae 0x441a75
test ebx, ebx
je 0x441a4a
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov ecx, edi
push eax
push edx
mov edx, ebx
call fcn.004380c7
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x441a71
mov edx, dword [esp + 0xb4]
jmp 0x441a6c
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp edi, eax
ja 0x441a6c
mov al, byte [edi]
cmp al, byte [esp + 0x74]
jne 0x441a6c
cmp ecx, 1
je 0x441a71
mov al, byte [edi + 1]
cmp al, byte [esp + 0x75]
je 0x441a71
inc edi
cmp edi, edx
jb 0x441a22
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x164]
test edx, edx
jne 0x441b7b
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x441ace
cmp dword [esp + 0x40], edx
je 0x441ac5
cmp esi, edi
jae 0x441b7b
mov ebx, ecx
movzx ecx, byte [esi]
mov eax, dword [esp + 0x78]
movzx eax, byte [ecx + eax]
cmp eax, ebx
je 0x441b7b
inc esi
cmp esi, edi
jb 0x441a9c
jmp 0x441b7b
movzx eax, byte [esi]
cmp eax, ecx
je 0x441b7b
inc esi
cmp esi, edi
jb 0x441ab9
jmp 0x441b7b
cmp dword [esp + 0xf8], 0
je 0x441b7b
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x160]
cmp esi, eax
jbe 0x441b7b
cmp esi, edi
jae 0x441b61
test ebx, ebx
je 0x441b26
cmp esi, dword [esp + 0xb0]
jbe 0x441b51
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov edx, ebx
push eax
push dword [esp + 0xb8]
mov ecx, esi
call fcn.00438161
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x441b56
jmp 0x441b51
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
add eax, ecx
cmp esi, eax
jb 0x441b51
mov edx, esi
sub edx, ecx
mov al, byte [edx]
cmp al, byte [esp + 0x74]
jne 0x441b51
cmp ecx, 1
je 0x441b56
mov al, byte [edx + 1]
cmp al, byte [esp + 0x75]
je 0x441b56
inc esi
cmp esi, edi
jb 0x441af6
mov edx, dword [esp + 0x164]
mov ebp, dword [esp + 0x54]
cmp byte [esi - 1], 0xd
jne 0x441b7b
cmp ebx, 1
je 0x441b71
cmp ebx, 2
jne 0x441b7b
cmp esi, edi
jae 0x441b7b
cmp byte [esi], 0xa
jne 0x441b7b
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
test edx, edx
jne 0x441bfc
cmp dword [esp + 0xc4], edx
jne 0x441bfc
mov edx, dword [esp + 0x38]
test edx, edx
js 0x441bfc
mov eax, ebx
sub eax, esi
cmp eax, 0x3e8
jge 0x441bfc
xor ecx, ecx
cmp dword [esp + 0x14], ecx
setge cl
add ecx, esi
cmp ecx, dword [esp + 0x30]
jbe 0x441bfc
cmp dword [esp + 0x34], 0
je 0x441bd9
cmp ecx, ebx
jae 0x441d54
mov edi, dword [esp + 0x2c]
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x441bef
cmp eax, edi
je 0x441bef
cmp ecx, ebx
jb 0x441bc7
jmp 0x441bf0
cmp ecx, ebx
jae 0x441d54
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x441bef
cmp ecx, ebx
jb 0x441be1
jmp 0x441bf0
dec ecx
cmp ecx, ebx
jae 0x441d54
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xac]
lea eax, [esp + 0x48]
xor ebp, ebp
mov dword [esp + 0xb8], esi
push ebp
push ebp
push ebp
push dword [esp + 0xfc]
mov ecx, esi
mov dword [esp + 0xd0], esi
push eax
push 2
push ebp
push esi
mov dword [esp + 0x68], ebp
call fcn.0043e15d
mov edi, eax
cmp dword [esp + 0xa4], ebp
je 0x441c4e
mov eax, dword [esp + 0x20]
test eax, eax
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0x20], eax
cmp edi, 0xfffffc1a
je 0x441d58
cmp edi, 0xfffffc1b
je 0x441c8e
mov eax, 0xfffffc1c
cmp edi, eax
je 0x441c83
jle 0x441d5a
cmp edi, 0xfffffc1e
jle 0x441c8e
test edi, edi
jne 0x441d5a
jmp 0x441c8e
mov ebp, dword [esp + 0xb8]
cmp ebp, esi
jne 0x441c91
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x60]
xor edi, edi
mov edx, dword [esp + 0xb4]
cmp dword [esp + 0x3c], edi
je 0x441cfe
test ebx, ebx
je 0x441cd4
cmp esi, edx
jae 0x441cfe
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov ecx, esi
push eax
push edx
mov edx, ebx
call fcn.004380c7
test eax, eax
jne 0x441dce
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
jmp 0x441cfe
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp esi, eax
ja 0x441cfe
mov al, byte [esi]
cmp al, byte [esp + 0x74]
jne 0x441cfe
cmp ecx, 1
je 0x441dce
mov al, byte [esi + 1]
cmp al, byte [esp + 0x75]
je 0x441dce
mov esi, ebp
cmp dword [esp + 0x44], edi
jne 0x441dce
mov eax, dword [esp + 0x10]
cmp ebp, eax
ja 0x441dce
cmp byte [ebp - 1], 0xd
jne 0x441d44
cmp ebp, eax
jae 0x441d44
cmp byte [ebp], 0xa
jne 0x441d44
mov eax, dword [esp + 0x18]
test byte [eax + 0xc], 0x20
jne 0x441d44
cmp ebx, 1
je 0x441d41
cmp ebx, 2
je 0x441d41
cmp dword [esp + 0x64], 2
jne 0x441d44
lea esi, [ebp + 1]
and dword [esp + 0xe4], edi
mov ebp, dword [esp + 0x54]
jmp 0x4419b9
xor edi, edi
jmp 0x441dd6
mov edi, ebp
xor esi, esi
inc esi
cmp edi, esi
je 0x441d69
cmp edi, 0xfffffc19
jne 0x441dd2
mov ebx, dword [esp + 0x16c]
cmp dword [esp + 0x28], ebp
je 0x441dc1
cmp ebx, 4
jl 0x441d9f
lea eax, [ebx*4 - 8]
push eax
mov eax, dword [esp + 0x58]
add eax, 8
push eax
mov eax, dword [esp + 0x170]
add eax, 8
push eax
call dword [0x46751c]
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0xc8], ebx
mov ecx, dword [esp + 0x54]
cmovg eax, esi
mov dword [esp + 0x80], eax
call dword [0x406e20]
cmp dword [esp + 0x80], ebp
je 0x441e27
mov eax, ebp
jmp 0x441e33
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x54]
cmp dword [esp + 0x28], 0
je 0x441de5
mov ecx, ebp
call dword [0x406e20]
push 0xfffffffffffffff4
pop eax
test edi, edi
je 0x441df4
cmp edi, eax
je 0x441df4
mov eax, edi
jmp 0x441e69
mov edx, dword [esp + 0x20]
test edx, edx
je 0x441e22
cmp dword [esp + 0x16c], 1
jle 0x441e69
mov ecx, dword [esp + 0x168]
sub edx, dword [esp + 0x158]
sub ebx, dword [esp + 0x158]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
jmp 0x441e69
or eax, 0xffffffff
jmp 0x441e69
mov eax, dword [esp + 0xc8]
cdq
sub eax, edx
sar eax, 1
cmp ebx, 2
jge 0x441e3c
mov eax, ebp
jmp 0x441e69
mov edx, dword [esp + 0x168]
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xb0]
mov dword [edx], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, dword [esp + 0xb0]
mov dword [edx + 4], ecx
jmp 0x441e69
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x18