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

Disassembly:
sub esp, 0x28
mov eax, dword [ecx + 0xaec]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x14], ecx
je 0x441a96
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x18], 1
cmp ecx, ebp
jne 0x441a9a
mov dword [esp + 0x18], ebp
cmp eax, ebp
je 0x441aaa
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x10], ebp
cmp ecx, 6
jl 0x441ab2
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x24], ebp
mov ecx, esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
xor edi, edi
call fcn.0043e090
cmp eax, ebp
je 0x441b02
mov ecx, eax
mov esi, eax
inc edi
call fcn.0043e090
cmp eax, ebp
jne 0x441acf
cmp edi, ebp
je 0x441b02
xor ebx, ebx
inc edi
cmp edi, ebp
mov dword [esp + 0x20], esi
jle 0x441b02
mov ecx, esi
call fcn.0043c610
mov esi, eax
cmp esi, ebp
je 0x441dff
inc ebx
cmp ebx, edi
jl 0x441aec
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
push 1
push esi
mov ecx, ebx
call fcn.0044d490
test eax, eax
mov dword [esp + 0x40], eax
je 0x441b4f
push ebp
mov ecx, esi
call fcn.0043c220
mov edi, eax
test edi, edi
je 0x441b4f
mov ax, word [edi + 0x34]
test al, 0x80
je 0x441b3a
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x441b4f
test ah, 1
je 0x441d21
mov eax, dword [esp + 0x10]
test eax, eax
je 0x441d21
mov eax, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x441c18
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x441c18
cmp byte [ebp], 0x5f
jne 0x441bbe
mov eax, dword [esp + 0x10]
test eax, eax
je 0x441b92
push 0x4a4f00
push ebp
call fcn.00414370
add esp, 8
test al, al
jne 0x441dcc
push 0x4a4f08
push ebp
call fcn.00414370
add esp, 8
test al, al
jne 0x441dee
push 0x4a4f10
push ebp
call fcn.00414370
add esp, 8
test al, al
jne 0x441e42
push 1
push ebp
call fcn.00447460
add esp, 8
test eax, eax
jge 0x441ea0
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x441c18
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x441c07
mov edi, dword [eax + 0xc]
test edi, edi
je 0x441c07
mov edx, dword [edi + 0x1c]
push ebp
push edx
call fcn.00414370
add esp, 8
test al, al
jne 0x441ed3
mov edi, dword [edi + 8]
test edi, edi
jne 0x441beb
push ebp
mov ecx, ebx
call fcn.00441a40
cmp eax, 0xffffffff
jne 0x441ef5
mov eax, dword [esi + 0x70]
test eax, eax
je 0x441c7c
push 0x4a4f68
push ebp
call fcn.00414370
add esp, 8
test al, al
je 0x441c38
mov ebx, 1
jmp 0x441c4f
push 0x4a4f5c
push ebp
call fcn.00414370
add esp, 8
test al, al
je 0x441c7c
mov ebx, 2
mov eax, dword [esp + 0x40]
test eax, eax
je 0x441df6
mov eax, dword [esi + 0x70]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0xb20]
call fcn.0044afb0
mov edi, eax
test edi, edi
jne 0x441f11
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x441f8c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x441df6
test byte [esp + 0x48], 1
je 0x441caa
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x441caa
mov ecx, dword [esi + 0x54]
mov dword [esp + 0x1c], ecx
mov ecx, esi
call fcn.0043c610
mov edi, eax
test edi, edi
jne 0x441ce2
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x441f8c
push edi
push 0x4a4f50
push esi
mov ecx, ebx
call fcn.0044a3b0
mov ecx, esi
call fcn.0043c610
mov edi, eax
test edi, edi
je 0x441f8c
mov eax, dword [esp + 0x10]
test eax, eax
je 0x441d06
cmp byte [ebp], 0x5f
jne 0x441d06
push 0x4a3b70
push ebp
call fcn.00414370
add esp, 8
test al, al
jne 0x441f69
mov eax, dword [esp + 0x24]
inc eax
cmp eax, 0x100
mov dword [esp + 0x24], eax
jg 0x441f82
mov esi, edi
jmp 0x441b0a
mov esi, dword [esi + 0x10]
test esi, esi
je 0x441d42
mov eax, dword [edi + 4]
test eax, eax
jne 0x441d42
push ebp
push esi
mov ecx, ebx
call fcn.0044aaa0
push 0
push eax
mov ecx, edi
call fcn.0043d190
mov eax, dword [edi + 0x30]
test eax, eax
je 0x441db1
mov cl, byte [edi + 0x34]
mov ebx, 0x10
test bl, cl
jne 0x441db1
mov esi, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.0044a720
test eax, eax
je 0x441db1
mov edx, dword [esp + 0x20]
or word [edi + 0x34], bx
push 0
push eax
push 0
push 0
push 0x4afb44
push 0
push edx
mov ecx, esi
call fcn.00449930
test eax, eax
je 0x441d90
push 1
mov ecx, esi
call fcn.00443610
mov eax, dword [esp + 0x44]
mov ecx, esi
push eax
call fcn.00447ff0
and word [edi + 0x34], 0xffef
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret 0x10
mov ecx, dword [esp + 0x44]
push 1
push edi
call fcn.0043d4d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret 0x10
push 1
mov ecx, ebx
call fcn.004498d0
mov ecx, dword [esp + 0x44]
push eax
call fcn.0043d360
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret 0x10
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x441e0b
mov ecx, dword [esp - 1]
adc eax, 0x498204
mov ebx, dword [esi + 0x2c]
push edi
mov dword [esi + 0x2c], 0xffffffff
call dword [0x498208]
adc eax, 0x498208
pop edi
mov eax, ebx
pop esi
pop ebx
ret
pop eax
xor eax, eax
push ebx
mov ebx, dword [esp + 0x60]
push ebp
push esi
mov al, byte [ebx]
push edi
and eax, 0xf0
cmp al, 0x20
je 0x441e62
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x58
ret
mov ebp, dword [esp + 0x70]
cmp ebp, 5
jge 0x441e7f
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov dword [eax], 0
mov al, 1
pop ebx
add esp, 0x58
ret
mov edi, dword [esp + 0x74]
mov esi, 1
cmp ebp, esi
mov dword [edi], 0
jle 0x441f02
lea ecx, [esp + 0x10]
call fcn.00457ec0
xor ecx, ecx
xor edx, edx
mov ch, byte [esi + ebx]
sub al, 0x1e
mov dl, byte [ebx + esi + 2]
mov cl, byte [ebx + esi + 1]
xor eax, eax
mov al, byte [ebx + esi + 3]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00457f10
test eax, eax
lea ecx, [esp + 0x10]
je 0x441efd
call fcn.00458020
mov edx, dword [edi]
lea ecx, [esp + 0x10]
add edx, eax
mov eax, dword [esp + 0x60]
mov dword [edi], edx
cdq
and edx, 7
add eax, edx
sar eax, 3
add esi, eax
call fcn.00457f00
cmp esi, ebp
jl 0x441e92
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x58
ret
call fcn.00457f00
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x58
ret
in al, dx
adc byte [ebx + 0x55], dl
mov ebp, dword [esp + 0x1c]
push esi
push edi
push 0
mov esi, dword [ebp + 0x7c]
mov ecx, esi
call fcn.00441900
lea ebx, [esi + 0x48]
mov edi, eax
push ebx
mov dword [esp + 0x20], ebx
call dword [0x498204]
xor edx, edx
cmp edi, edx
je 0x4421f6
push edi
mov ecx, esi
call fcn.00442340
xor eax, eax
xor ecx, ecx
mov ah, byte [edi + 9]
mov cl, byte [edi + 0xb]
mov al, byte [edi + 0xa]
shl eax, 8
or eax, ecx
jne 0x441f8a
mov byte [esi + 6], 1
mov dword [ebp + 0x108], 0
add byte [eax], al
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x10]
add ecx, edx
push ebx
mov dword [esi + 0x10], ecx
call dword [0x498208]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
add byte [eax], al
add byte [ebx - 0x7d], bl
les edx, [eax]
ret
mov al, byte [esi + 6]
push es
test al, al
je 0x441fe4
xor eax, eax
mov byte [esi + 6], 0
mov ah, byte [edi + 0xf]
xor ecx, ecx
mov al, byte [edi + 0xc]
mov cl, byte [edi + 0xd]
shl eax, 8
or eax, ecx
xor edx, edx
mov dl, byte [edi + 0xe]
shl eax, 8
or eax, edx
xor edx, edx
mov dword [esi + 8], edx
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov ecx, dword [ebp + 0x100]
cmp eax, ecx
jb 0x441fd9
sub eax, ecx
mov dword [esi + 0x10], eax
mov dword [ebp + 0x100], edx
jmp 0x441fe4
sub ecx, eax
mov dword [ebp + 0x100], ecx
mov dword [esi + 0x10], edx
mov ecx, dword [edi + 0x14]
mov edx, dword [esi + 0x78]
lea ebx, [esi + 0x78]
xor eax, eax
mov al, byte [ecx]
mov dword [esp + 0x24], ecx
cmp edx, eax
mov byte [esp + 0x10], 0
je 0x44203b
xor ecx, ecx
xor edx, edx
mov ch, byte [edi + 9]
mov dl, byte [edi + 0xb]
mov cl, byte [edi + 0xa]
shl ecx, 8
or ecx, edx
dec ecx
push ecx
push eax
push ebx
call fcn.00434430
mov eax, dword [ebx]
add esp, 0xc
and eax, 0xf0
lea ecx, [esi + 0x64]
push eax
call 0x3f2830
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x128], eax
mov byte [esp + 0x10], 1
cmp dword [esi + 0x94], 0xffffffff
jne 0x442066
xor edx, edx
xor eax, eax
mov dh, byte [edi + 0xf]
mov al, byte [edi + 0xd]
mov dl, byte [edi + 0xc]
shl edx, 8
or edx, eax
xor eax, eax
mov al, byte [edi + 0xe]
shl edx, 8
or edx, eax
mov dword [esi + 0x94], edx
xor eax, eax
lea edx, [esp + 0x18]
mov ah, byte [edi + 9]
push edx
mov al, byte [edi + 0xa]
xor edx, edx
mov dl, byte [edi + 0xb]
shl eax, 8
or eax, edx
push eax
push ecx
call fcn.00441e40
add esp, 0xc
test al, al
je 0x442097
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x108], eax
jmp 0x4420a0
mov ecx, dword [esi + 0x7c]
mov dword [ebp + 0x108], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x4420c3
mov ecx, dword [ebx]
mov edx, 0x89d
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x499ad4]
sar edx, cl
mov dword [eax + 4], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x1c]
inc eax
push eax
call 0x3f2900
xor ecx, ecx
mov eax, dword [ebp + 0x1c]
mov ch, byte [edi + 9]
xor edx, edx
mov cl, byte [edi + 0xa]
mov dl, byte [edi + 0xb]
shl ecx, 8
or ecx, edx
dec ecx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x128]
and eax, 0xff
push eax
push ebx
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [ebx]
mov edx, dword [esi + 0x74]
sar ecx, 2
mov eax, dword [edx + 0x100]
and ecx, 3
mov edx, eax
mov dword [esp + 0x14], 0
mov ecx, dword [ecx*4 + 0x499ad4]
shl edx, cl
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x94]
fild dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x108]
shl edx, cl
fmul qword [0x49a9e0]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x10]
fmul qword [0x499fa0]
fild qword [esp + 0x10]
cmp edx, eax
faddp st(1)
fild dword [esp + 0x24]
fmul qword [0x49a9e0]
fmul qword [0x499fa0]
jb 0x442180
mov ebx, edx
sub ebx, eax
shl ebx, cl
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
fild qword [esp + 0x10]
jmp 0x442192
sub eax, edx
shl eax, cl
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x14], eax
fild qword [esp + 0x10]
xor ecx, ecx
xor ebx, ebx
mov ch, byte [edi + 0xf]
mov bl, byte [edi + 0xd]
mov cl, byte [edi + 0xc]
mov dword [esp + 0x14], eax
shl ecx, 8
or ecx, ebx
xor ebx, ebx
mov bl, byte [edi + 0xe]
shl ecx, 8
or ecx, ebx
mov dword [esp + 0x10], ecx
fild qword [esp + 0x10]
fadd st(2)
fxch st(1)
fmul qword [0x49a9e0]
fmul qword [0x499fa0]
fsubp st(1)
fsubr st(2)
fstp qword [esi + 8]
add edx, dword [ebp + 0x108]
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x1c]
fstp st(0)
push edx
fstp st(0)
call dword [0x498208]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
mov al, byte [esi + 6]
test al, al
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
je 0x442230
cmp ecx, edx
jg 0x442221
mov ecx, dword [esi + 0x78]
mov edi, 0x89d
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x499ad4]
sar edi, cl
mov dword [eax + 4], edi
mov byte [esi + 6], 1
mov dword [ebp + 0x108], edx
jmp 0x441f6b
cmp ecx, edx
jg 0x44224e
mov ecx, dword [esi + 0x78]
mov esi, 0x89d
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x499ad4]
sar esi, cl
mov dword [eax + 4], esi
push ebx
mov dword [ebp + 0x108], edx
call dword [0x498208]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret