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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x442c11
sub esp, 0xa8
mov eax, dword [esp + 0xac]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xa4], ecx
lea edx, [0x4b54c0]
mov dword [esp], edx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], ebx
lea ebp, [esp + 0xa0]
mov dword [esp + 8], ebp
call fcn.0040a650
movzx eax, byte [esp + 0x10]
test al, al
jne 0x442b67
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x9c], ecx
lea edx, [0x4b54c0]
mov dword [esp], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 4], edx
lea ebx, [esp + 0x98]
mov dword [esp + 8], ebx
call fcn.0040a9f0
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
cmp eax, ecx
je 0x442b58
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
movzx ebp, byte [ecx + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x442b49
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], dl
mov dword [esp], eax
call fcn.00440c60
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call fcn.00440c60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
je 0x442050
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x442041
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00440cf0
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
call fcn.00440cf0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x442aa2
test eax, eax
jne 0x442aa0
movzx eax, byte [esp + 0x16]
lea ecx, [eax - 1]
cmp cl, 0xf
jbe 0x442a91
cmp al, 0x15
ja 0x44277a
cmp al, 0x12
jbe 0x4426c1
cmp al, 0x13
jne 0x442394
mov eax, dword [esp + 0xac]
movzx ecx, word [eax + 0x22]
mov edx, dword [esp + 0xb0]
movzx ebx, word [edx + 0x22]
cmp cx, bx
jne 0x442385
movzx ecx, word [eax + 0x20]
movzx ebx, word [edx + 0x20]
cmp bx, cx
jne 0x442385
movzx ebp, byte [eax + 0xc]
xchg ebp, eax
test al, 1
xchg ebp, eax
je 0x44237b
mov ebp, 0x34
add ebp, eax
test byte [ebp], al
movzx ecx, cx
cmp ecx, 0x100000
ja 0x442bb5
movzx esi, byte [edx + 0xc]
xchg esi, eax
test al, 1
xchg esi, eax
je 0x442371
mov esi, 0x34
add esi, edx
test byte [esi], al
movzx ebx, bx
cmp ebx, 0x100000
ja 0x442bae
mov dword [esp + 0x90], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x1c], ebx
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
jmp 0x4421c6
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0xb0]
mov ebp, esi
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x38]
cmp edx, ecx
jge 0x44220b
jae 0x442ba7
mov eax, dword [ebp + edx*4]
cmp edx, ebx
jae 0x442ba7
mov ecx, dword [esi + edx*4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
jne 0x442182
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
movzx ecx, byte [eax + 0xc]
test cl, 1
je 0x442367
mov ecx, 0x34
add ecx, eax
test byte [ecx], al
movzx edx, word [eax + 0x22]
and edx, 0x7fff
movzx eax, word [eax + 0x20]
movzx ebx, ax
add eax, edx
movzx eax, ax
cmp ebx, eax
ja 0x442ba0
cmp eax, 0x100000
ja 0x442ba0
sub eax, ebx
lea edx, [ebx - 0x100000]
neg edx
shl ebx, 2
neg edx
sar edx, 0x1f
and edx, ebx
add ecx, edx
mov edx, dword [esp + 0xb0]
movzx ebx, byte [edx + 0xc]
test bl, 1
je 0x44235d
mov ebx, 0x34
add ebx, edx
test byte [ebx], al
movzx ebp, word [edx + 0x22]
and ebp, 0x7fff
movzx edx, word [edx + 0x20]
movzx esi, dx
add edx, ebp
movzx edx, dx
cmp esi, edx
ja 0x442b99
cmp edx, 0x100000
ja 0x442b99
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], ecx
sub edx, esi
mov dword [esp + 0x18], edx
lea ebp, [esi - 0x100000]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
shl esi, 2
sar ebp, 0x1f
and ebp, esi
add ebx, ebp
mov dword [esp + 0x50], ebx
xor ebp, ebp
jmp 0x44230a
mov esi, dword [esp + 0x2c]
lea ebp, [esi + 1]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x60]
mov eax, esi
mov ecx, ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0xb4]
cmp ebp, eax
jge 0x44234e
jae 0x442b92
mov esi, dword [ecx + ebp*4]
cmp ebp, edx
jae 0x442b92
mov dword [esp + 0x2c], ebp
mov eax, dword [ebx + ebp*4]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edi
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4422d9
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
mov ebx, 0x24
jmp 0x442279
mov ecx, 0x24
jmp 0x44221d
mov esi, 0x24
jmp 0x442142
mov ebp, 0x24
jmp 0x44211a
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
cmp al, 0x14
jne 0x44264b
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.00441840
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00441840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
je 0x4423ef
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x4423e0
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x28]
cmp ecx, ebx
jne 0x44263c
mov dword [esp + 0x44], ecx
xor ebx, ebx
jmp 0x44244e
mov ebp, dword [esp + 0x34]
lea ebx, [ebp + 1]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
mov eax, edi
mov ecx, ebp
mov edx, esi
cmp ebx, ecx
jge 0x44262d
mov ebp, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
cmp ebx, esi
jae 0x442b8b
lea esi, [ebp + ebx*8]
mov edi, dword [edx + 0x24]
mov edx, dword [edx + 0x28]
cmp ebx, edx
jae 0x442b84
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x64], esi
lea eax, [ebp + ebx*8]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00440ee0
mov eax, dword [esp + 8]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
lea ebx, [edx + ecx*8]
mov ebx, dword [ebx]
mov dword [esp + 4], ebx
lea ebx, [edx + ecx*8]
mov dword [esp + 0x54], ebx
mov dword [esp], ebx
call fcn.00440ee0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call fcn.00441840
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.00441840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jne 0x44261e
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x44261e
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00441950
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.00441950
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jne 0x44260f
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x44260f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
call fcn.004411c0
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
lea edx, [edx + ecx*8 + 4]
mov edx, dword [edx]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x54]
mov dword [esp], edx
call fcn.004411c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
jne 0x44242f
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
jne 0x44268f
xor eax, eax
mov byte [esp + 0xb8], al
add esp, 0xa8
ret
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00441f20
movzx eax, byte [esp + 0xc]
jmp 0x442681
cmp al, 0x11
je 0x44271b
cmp al, 0x12
jne 0x442bbc
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x24]
cmp ecx, ebx
je 0x4426f7
xor eax, eax
mov byte [esp + 0xb8], al
add esp, 0xa8
ret
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00441f20
movzx eax, byte [esp + 0xc]
jmp 0x4426e9
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
je 0x442776
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 0x28]
cmp eax, ecx
sete al
mov byte [esp + 0xb8], al
add esp, 0xa8
ret
xor eax, eax
jmp 0x442768
cmp al, 0x17
ja 0x442804
cmp al, 0x16
jne 0x4427c6
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00441f20
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xb8], al
add esp, 0xa8
ret
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00441f20
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xb8], al
add esp, 0xa8
ret
cmp al, 0x18
jne 0x442818
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
cmp al, 0x19
jne 0x442a83
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x28]
cmp ecx, ebx
jne 0x442a74
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.00441840
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00441840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
je 0x442888
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x442879
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xb0]
xor ebx, ebx
jmp 0x4428dc
mov ebp, dword [esp + 0x30]
lea ebx, [ebp + 1]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
mov eax, edi
mov ecx, ebp
mov edx, esi
cmp ebx, ecx
jge 0x442a65
mov ebp, dword [eax + 0x28]
mov esi, dword [eax + 0x24]
cmp ebx, ebp
jae 0x442b7d
lea ebp, [ebx + ebx*2]
mov edi, dword [edx + 0x28]
mov edx, dword [edx + 0x24]
cmp ebx, edi
jae 0x442b76
mov dword [esp + 0x74], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x40], ebp
mov eax, dword [esi + ebp*4]
mov dword [esp], eax
call fcn.00441840
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00441840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jne 0x442a56
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x442a56
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + eax*4 + 4]
mov dword [esp + 4], ebp
mov dword [esp], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
call fcn.00441f20
movzx eax, byte [esp + 0xc]
test al, al
je 0x442a47
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.004418c0
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.004418c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jne 0x442a38
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
je 0x442a38
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + eax*4 + 8]
mov edx, dword [esp + 0x74]
mov eax, dword [edx + eax*4 + 8]
cmp ecx, eax
je 0x4428bd
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
cmp al, 0x1a
je 0x442809
jmp 0x442bbc
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
test ecx, ecx
je 0x442aa8
test eax, eax
jne 0x442ab7
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov dword [esp + 0x58], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00441180
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00441840
mov eax, dword [esp + 8]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x58]
mov edx, dword [edx]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call fcn.00441180
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00441840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jne 0x442b3a
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00402050
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4420aa
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 0
add esp, 0xa8
ret
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
mov byte [esp + 0xb8], 1
add esp, 0xa8
ret
call fcn.00423d40
ud2
call fcn.00423d40
ud2
call fcn.00423d40
ud2
call fcn.00423d40
ud2
call fcn.00423d40
ud2
call fcn.00423e40
ud2
call fcn.00423e40
ud2
call fcn.00423d40
ud2
call fcn.00423e40
ud2
call fcn.00423e40
ud2
call fcn.00425a10
lea eax, [0x4d1700]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00426290
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00425fb0
call fcn.00425c20
call fcn.00425a80
lea eax, [0x4d127b]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.00425150
ud2
call fcn.00445f00
jmp fcn.00441f20