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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.0043a400
xor ebx, ebx
cmp eax, 0
jl 0x41f9e3
mov dword [esp], esi
call fcn.00414260
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
mov edx, eax
and edx, 0xfffffffd
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov word [esp + 0xac], ax
movzx eax, ax
add eax, 0xe49e2a46
add eax, 2
sub eax, 0xe49e2a46
mov word [esp + 0xae], ax
lea eax, [esp + 0xac]
add eax, 4
mov dword [eax], esi
mov dword [esp], 0x848
call fcn.00436db0
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x80]
mov al, byte [esp + 0x88]
mov byte [esp + 0xa4], al
mov byte [esp + 0x4a], 0x80
mov byte [esp + 0x4b], 0x8f
mov byte [esp + 0x4c], 0x8e
mov byte [esp + 0x4d], 0x8d
movzx ecx, byte [esp + 0x4a]
mov eax, ecx
and eax, 0xffffff37
or ecx, 0xdf2d6837
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4a], cl
movzx ecx, byte [esp + 0x4b]
mov eax, ecx
and eax, 0xffffff38
or ecx, 0xdf2d6838
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4b], cl
movzx ecx, byte [esp + 0x4c]
mov eax, ecx
and eax, 0xffffff39
or ecx, 0xdf2d6839
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4c], cl
movzx ecx, byte [esp + 0x4d]
mov eax, ecx
and eax, 0xffffff3a
or ecx, 0xdf2d683a
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4d], cl
mov edi, dword [esp + 0x4a]
xor ebp, ebp
cmp ebp, dword [0x446b30]
jb 0x41f244
mov ecx, 2
jmp 0x41f2fc
mov edx, dword [0x446b34]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x53], bl
test bl, 1
jne 0x41f264
jmp 0x41f2eb
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x41f2eb
mov eax, dword [0x446b38]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.004383c0
mov ecx, 1
test byte [esp + 0x53], 1
jne 0x41f2fa
add ebp, 1
jmp 0x41f232
jmp 0x41f2fc
cmp ecx, 2
je 0x41f303
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x41f8ac
mov dword [esp + 0x64], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x6c]
jmp 0x41f320
mov dword [esp + 0x54], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x38]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x400
add eax, ecx
cmp eax, 0
jne 0x41f572
mov al, byte [esp + 0x7c]
mov byte [esp + 0x8c], al
mov byte [esp + 0x42], 0xc1
mov byte [esp + 0x43], 0x90
mov byte [esp + 0x44], 0x91
mov byte [esp + 0x45], 0x92
movzx eax, byte [esp + 0x42]
xor eax, 0xed7923a7
mov ecx, eax
shl ecx, 1
and ecx, 0x8e
mov edx, eax
shl edx, 1
and edx, 0x8e
add edx, 0x39
sub eax, edx
add eax, ecx
add al, 1
mov byte [esp + 0x42], al
movzx eax, byte [esp + 0x43]
xor eax, 0xed7923a8
mov ecx, eax
shl ecx, 1
and ecx, 0x8e
mov edx, eax
shl edx, 1
and edx, 0x8e
add edx, 0x39
sub eax, edx
add eax, ecx
add al, 1
mov byte [esp + 0x43], al
movzx eax, byte [esp + 0x44]
xor eax, 0xed7923a9
mov ecx, eax
shl ecx, 1
and ecx, 0x8e
mov edx, eax
shl edx, 1
and edx, 0x8e
add edx, 0x39
sub eax, edx
add eax, ecx
add al, 1
mov byte [esp + 0x44], al
movzx eax, byte [esp + 0x45]
xor eax, 0xed7923aa
mov ecx, eax
shl ecx, 1
and ecx, 0x8e
mov edx, eax
shl edx, 1
and edx, 0x8e
add edx, 0x39
sub eax, edx
add eax, ecx
add al, 1
mov byte [esp + 0x45], al
mov ebp, dword [esp + 0x68]
add ebp, 0x44
lea eax, [esp + 0x42]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0041fa00
cmp eax, 0
je 0x41f572
mov al, byte [esp + 0x78]
mov byte [esp + 0x90], al
mov byte [esp + 0x5e], 0x4d
mov byte [esp + 0x5f], 0x94
mov byte [esp + 0x60], 0x4b
mov byte [esp + 0x61], 0x96
mov byte [esp + 0x62], 0x97
mov byte [esp + 0x63], 0x88
xor eax, eax
cmp eax, 6
jae 0x41f49f
movzx edx, byte [esp + eax + 0x5e]
mov ecx, eax
add ecx, 0xcb
mov dword [esp + 0x58], ebx
mov ebx, edx
xor ebx, 0xffffffff
and ecx, ebx
mov ebx, 0x34
sub ebx, eax
and ebx, edx
or ecx, ebx
mov ebx, dword [esp + 0x58]
add cl, 0xa8
mov byte [esp + eax + 0x5e], cl
add eax, 1
jmp 0x41f467
lea eax, [esp + 0x5e]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0041fa00
cmp eax, 0
jne 0x41f4c1
mov esi, dword [esp + 0x54]
jmp 0x41f576
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41f4dc
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov dword [esp + 0xb4], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00413ea0
mov word [eax], 0
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x28]
mov edx, dword [esi]
mov esi, dword [esp + 0xb4]
mov ecx, edx
xor ecx, 0xffffffff
or ecx, 0xffffffef
xor edx, 0xffffffff
or edx, 0xffffffef
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor edx, edx
cmp ecx, 0
setne dl
mov ecx, dword [esp + 0xec]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp], esi
and edx, 1
mov dword [esp + 4], edx
call dword [esp + 0xe8]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], esi
call fcn.004082b0
mov esi, dword [esp + 0x54]
jmp 0x41f576
mov esi, dword [esp + 0x54]
cmp esi, 0
sete al
test al, 1
jne 0x41f586
mov edi, dword [esp + 0x64]
jmp 0x41f5ad
mov dword [esp], 0x10900
call fcn.00436db0
mov edi, eax
cmp edi, 0
jne 0x41f5a9
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x68]
jmp 0x41f89e
mov esi, edi
jmp 0x41f5ad
cmp edi, esi
jne 0x41f885
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], esi
mov al, byte [esp + 0x74]
mov byte [esp + 0x94], al
mov byte [esp + 0x3e], 0x83
mov byte [esp + 0x3f], 0xbd
mov byte [esp + 0x40], 0x84
mov byte [esp + 0x41], 0x86
mov al, byte [esp + 0x3e]
xor al, 0x5b
add al, 0x28
mov byte [esp + 0x3e], al
mov al, byte [esp + 0x3f]
xor al, 0x5c
add al, 0x28
mov byte [esp + 0x3f], al
mov al, byte [esp + 0x40]
xor al, 0x5d
add al, 0x28
mov byte [esp + 0x40], al
mov al, byte [esp + 0x41]
xor al, 0x5e
add al, 0x28
mov byte [esp + 0x41], al
mov eax, dword [esp + 0x3e]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xbc], eax
mov al, byte [esp + 0x84]
mov byte [esp + 0xa8], al
mov byte [esp + 0x46], 0x80
mov byte [esp + 0x47], 0x8f
mov byte [esp + 0x48], 0x8e
mov byte [esp + 0x49], 0x8d
movzx ecx, byte [esp + 0x46]
mov eax, ecx
and eax, 0xffffff37
or ecx, 0xdf2d6837
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x47]
mov eax, ecx
and eax, 0xffffff38
or ecx, 0xdf2d6838
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x47], cl
movzx ecx, byte [esp + 0x48]
mov eax, ecx
and eax, 0xffffff39
or ecx, 0xdf2d6839
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x48], cl
movzx ecx, byte [esp + 0x49]
mov eax, ecx
and eax, 0xffffff3a
or ecx, 0xdf2d683a
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x49], cl
mov esi, dword [esp + 0x46]
xor ebp, ebp
cmp ebp, dword [0x446b30]
jb 0x41f6f7
mov ecx, 2
mov ebx, dword [esp + 0x58]
jmp 0x41f7c1
mov edx, dword [0x446b34]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x52], bl
test bl, 1
jne 0x41f71b
mov ebx, dword [esp + 0x58]
jmp 0x41f7b0
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
mov ebx, dword [esp + 0x58]
je 0x41f7b0
mov eax, dword [0x446b38]
xor ecx, ecx
lea ecx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xac]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.004383c0
mov ecx, 1
test byte [esp + 0x52], 1
jne 0x41f7bf
add ebp, 1
jmp 0x41f6e1
jmp 0x41f7c1
cmp ecx, 2
je 0x41f7c8
mov esi, eax
mov al, byte [esp + 0x70]
mov byte [esp + 0x98], al
mov byte [esp + 0x3a], 0x60
mov byte [esp + 0x3b], 0x66
mov byte [esp + 0x3c], 0x67
mov byte [esp + 0x3d], 0xf8
mov al, byte [esp + 0x3a]
xor al, 0xd
add al, 0x98
mov byte [esp + 0x3a], al
mov al, byte [esp + 0x3b]
xor al, 0xe
add al, 0x98
mov byte [esp + 0x3b], al
mov al, byte [esp + 0x3c]
xor al, 0xf
add al, 0x98
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x3d]
xor al, 0x10
add al, 0x98
mov byte [esp + 0x3d], al
cmp esi, dword [esp + 0x3a]
sete al
test al, 1
jne 0x41f824
jmp 0x41f850
xor eax, eax
mov edx, edi
jmp 0x41f82a
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x41f841
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x41f82a
cmp eax, 0
je 0x41f84c
mov dword [eax], 0
xor esi, esi
jmp 0x41f850
cmp esi, 0
jge 0x41f868
mov esi, dword [esp + 0x54]
mov dword [esp], esi
call fcn.00436dd0
mov eax, 2
jmp 0x41f870
xor eax, eax
mov esi, dword [esp + 0x54]
jmp 0x41f870
cmp eax, 0
sete cl
test cl, 1
jne 0x41f885
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x68]
jmp 0x41f89e
mov eax, dword [edi]
cmp eax, 0
je 0x41f896
mov ecx, edi
add ecx, eax
mov dword [esp + 0x64], ecx
jmp 0x41f89c
mov dword [esp + 0x64], esi
jmp 0x41f89c
xor eax, eax
test eax, eax
mov eax, edi
je 0x41f320
jmp 0x41f8aa
jmp 0x41f8ac
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00436dd0
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x9c]
mov byte [esp + 0xa0], al
mov byte [esp + 0x4e], 0x80
mov byte [esp + 0x4f], 0x8f
mov byte [esp + 0x50], 0x8e
mov byte [esp + 0x51], 0x8d
movzx ecx, byte [esp + 0x4e]
mov eax, ecx
and eax, 0xffffff37
or ecx, 0xdf2d6837
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4e], cl
movzx ecx, byte [esp + 0x4f]
mov eax, ecx
and eax, 0xffffff38
or ecx, 0xdf2d6838
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x4f], cl
movzx ecx, byte [esp + 0x50]
mov eax, ecx
and eax, 0xffffff39
or ecx, 0xdf2d6839
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x50], cl
movzx ecx, byte [esp + 0x51]
mov eax, ecx
and eax, 0xffffff3a
or ecx, 0xdf2d683a
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
or eax, ecx
mov cl, 0x47
sub cl, al
mov byte [esp + 0x51], cl
mov edi, dword [esp + 0x4e]
xor ebp, ebp
cmp ebp, dword [0x446b30]
jb 0x41f98c
jmp 0x41f9e3
mov esi, ebx
mov eax, dword [0x446b34]
cmp dword [eax + ebp*8], 0xb430e561
sete bl
test bl, 1
jne 0x41f9a4
jmp 0x41f9d3
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
jne 0x41f9ae
jmp 0x41f9d3
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], eax
call fcn.004383c0
test bl, 1
je 0x41f9dc
mov ebx, esi
jmp 0x41f9e3
add ebp, 1
mov ebx, esi
jmp 0x41f982
and bl, 1
movzx eax, bl
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret