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

Disassembly:
sub esp, 0x13c
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x14c]
or dword [esp + 4], 0xffffffff
or dword [esp + 0x30], 0xffffffff
or dword [esp + 0x2c], 0xffffffff
push ebx
push ebp
push esi
mov esi, dword [esp + 0x154]
xor ebx, ebx
add esi, eax
push edi
mov edi, ecx
lea ecx, [esi - 1]
mov ebp, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], ebp
test edx, 0xe20f5a6f
je 0x41a836
push 0xfffffffffffffffd
jmp 0x41b0e2
test edi, edi
je 0x41b0e0
test eax, eax
je 0x41b0e0
mov ecx, dword [esp + 0x164]
cmp dword [esp + 0x160], ebx
jne 0x41a85e
test ecx, ecx
jg 0x41b0e0
test ecx, ecx
jns 0x41a869
push 0xfffffffffffffff1
jmp 0x41b0e2
movzx eax, word [edi + 0x18]
add eax, edi
cmp dword [edi + 0x20], 0
mov dword [esp + 0x70], eax
movzx eax, word [edi + 0x1c]
mov dword [esp + 0x68], eax
movzx eax, word [edi + 0x1a]
mov dword [esp + 0xe0], ebx
mov ebx, 0xfe804db0
cmovne ebx, dword [edi + 0x20]
cmp dword [edi], 0x50435245
mov dword [esp + 0x6c], eax
mov eax, 0xf4240
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], ebx
je 0x41a8e0
lea eax, [esp + 0x11c]
push eax
push 0
lea edx, [esp + 0xfc]
mov ecx, edi
call fcn.0040a75e
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x41a8d9
push 0xfffffffffffffffc
jmp 0x41b0e2
mov edx, dword [esp + 0x15c]
mov ecx, dword [ebp + 8]
mov eax, ecx
or eax, edx
shr eax, 4
and eax, 1
mov dword [esp + 0x30], eax
movzx eax, word [ebp + 0xc]
shr eax, 3
and eax, 1
mov dword [esp + 0xec], eax
movzx eax, word [ebp + 0x1a]
shr ecx, 0x12
and ecx, 1
mov dword [esp + 0x38], ecx
movzx ecx, word [ebp + 0x1c]
imul ecx, eax
movzx eax, word [ebp + 0x18]
add ecx, edi
add eax, ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x154]
add eax, ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xb0], ecx
mov eax, dword [ebp + 8]
shr eax, 5
xor edi, edi
inc edi
and eax, edi
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
shr eax, 0xb
and eax, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 8]
shr eax, 0x1d
and eax, edi
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 8]
shr eax, 0x19
and eax, edi
mov dword [esp + 0x90], eax
mov eax, edx
shr eax, 7
and eax, edi
mov dword [esp + 0x84], eax
mov eax, edx
shr eax, 8
and eax, edi
mov dword [esp + 0x88], eax
mov eax, edx
shr eax, 0xa
and eax, edi
mov dword [esp + 0x9c], eax
mov eax, edx
shr eax, 0x1c
and eax, edi
mov dword [esp + 0xa0], eax
mov ecx, edx
shr ecx, 0xf
and ecx, edi
mov eax, edx
and eax, 0x8000000
push 2
pop edi
cmovne ecx, edi
xor edi, edi
lea eax, [ebx + 0x340]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], edi
mov dword [esp + 0x78], ebx
mov eax, edx
mov ecx, 0x1800000
and eax, ecx
je 0x41aa3d
cmp eax, 0x800000
je 0x41aa31
cmp eax, 0x1000000
je 0x41aa55
push 0xffffffffffffffe9
jmp 0x41b0e2
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], ebx
jmp 0x41aa5f
mov eax, dword [ebp + 8]
test ecx, eax
je 0x41aa55
xor ebx, ebx
shr eax, 0x17
inc ebx
and eax, ebx
mov dword [esp + 0xa8], eax
jmp 0x41aa5f
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], edi
mov ecx, 0x700000
test ecx, edx
jne 0x41aa6d
mov eax, dword [ebp + 8]
jmp 0x41aa6f
mov eax, edx
and eax, ecx
je 0x41aa99
cmp eax, 0x100000
je 0x41aabe
cmp eax, 0x200000
je 0x41aaba
cmp eax, 0x300000
je 0x41aab3
cmp eax, 0x400000
je 0x41aa99
cmp eax, 0x500000
jne 0x41aa2a
push 2
pop ebx
mov dword [esp + 0x60], ebx
cmp dword [esp + 0xc4], edi
je 0x41aaf4
test byte [ebp + 0xc], 1
je 0x41aaf4
push 0xfffffffffffffff3
jmp 0x41b0e2
mov ecx, 0xd0a
jmp 0x41aac1
push 0xa
jmp 0x41aac0
push 0xd
pop ecx
mov ebx, edi
mov dword [esp + 0x60], ebx
cmp ecx, 0xff
jle 0x41aae6
mov eax, ecx
sar eax, 8
mov dword [esp + 0x64], 2
mov byte [esp + 0x74], al
mov byte [esp + 0x75], cl
jmp 0x41aa9d
mov dword [esp + 0x64], 1
mov byte [esp + 0x74], cl
jmp 0x41aa9d
mov eax, dword [ebp + 8]
and eax, 7
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x164]
cdq
push 3
pop edi
idiv edi
movzx eax, word [ebp + 0x12]
mov edi, dword [esp + 0x164]
sub edi, edx
test ax, ax
je 0x41ab5e
mov ecx, eax
mov eax, edi
push 3
cdq
pop ebp
idiv ebp
cmp ecx, eax
jl 0x41ab5e
lea edi, [ecx + 1]
imul edi, edi, 3
mov ecx, edi
shl ecx, 2
call dword [0xfe83f35c]
mov ebp, eax
mov dword [esp + 0x54], ebp
test ebp, ebp
jne 0x41ab50
push 0xfffffffffffffffa
jmp 0x41b0e2
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x28], 1
jmp 0x41ab69
mov ebp, dword [esp + 0x160]
mov dword [esp + 0x54], ebp
lea eax, [edi + edi]
cdq
push 3
pop ecx
idiv ecx
and dword [esp + 0x80], 0
or dword [esp + 0xcc], 0xffffffff
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], eax
movzx eax, word [ecx + 0x10]
lea eax, [eax*2 + 2]
cmp eax, dword [esp + 0x164]
cmovg eax, edi
mov dword [esp + 0xe8], eax
test ebp, ebp
je 0x41abe1
cdq
sub eax, edx
xor ecx, ecx
sar eax, 1
lea edi, [edi*4]
inc ecx
add edi, ebp
sub ecx, eax
lea eax, [edi + ecx*4]
sub edi, 4
cmp edi, eax
jb 0x41abdd
or dword [edi], 0xffffffff
sub edi, 4
cmp edi, eax
jae 0x41abcb
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], 0
jne 0x41ac11
test byte [ecx + 0xc], 2
je 0x41ac11
movzx eax, word [ecx + 0x14]
movzx edx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], eax
je 0x41ac11
mov eax, dword [esp + 0x78]
movzx edx, byte [eax + edx]
mov dword [esp + 0x14], edx
test byte [ecx + 0xc], 4
je 0x41ac3c
movzx eax, word [ecx + 0x16]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
movzx eax, byte [eax + ecx + 0x100]
mov dword [esp + 0x3c], eax
and dword [esp + 0x15c], 0x4000000
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
test ebp, ebp
je 0x41ac8f
mov eax, dword [esp + 0xe8]
lea ecx, [eax*4]
add ecx, ebp
cmp ebp, ecx
jae 0x41ac8f
sub ecx, ebp
dec ecx
shr ecx, 2
inc ecx
mov edi, ebp
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
je 0x41acef
mov edi, esi
cmp esi, edx
jae 0x41acef
test ebx, ebx
je 0x41acc4
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push edx
mov edx, ebx
mov ecx, edi
call fcn.0040b2ed
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x41aceb
mov edx, dword [esp + 0xb4]
jmp 0x41ace6
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp edi, eax
ja 0x41ace6
mov al, byte [edi]
cmp al, byte [esp + 0x74]
jne 0x41ace6
cmp ecx, 1
je 0x41aceb
mov al, byte [edi + 1]
cmp al, byte [esp + 0x75]
je 0x41aceb
inc edi
cmp edi, edx
jb 0x41ac9c
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x15c]
test edx, edx
jne 0x41adf5
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x41ad48
cmp dword [esp + 0x44], edx
je 0x41ad3f
cmp esi, edi
jae 0x41adf5
mov ebx, ecx
movzx ecx, byte [esi]
mov eax, dword [esp + 0x78]
movzx eax, byte [ecx + eax]
cmp eax, ebx
je 0x41adf5
inc esi
cmp esi, edi
jb 0x41ad16
jmp 0x41adf5
movzx eax, byte [esi]
cmp eax, ecx
je 0x41adf5
inc esi
cmp esi, edi
jb 0x41ad33
jmp 0x41adf5
cmp dword [esp + 0xec], 0
je 0x41adf5
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x158]
cmp esi, eax
jbe 0x41adf5
cmp esi, edi
jae 0x41addb
test ebx, ebx
je 0x41ada0
cmp esi, dword [esp + 0xb0]
jbe 0x41adcb
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push dword [esp + 0xb8]
mov edx, ebx
mov ecx, esi
call fcn.0040b387
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x41add0
jmp 0x41adcb
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
add eax, ecx
cmp esi, eax
jb 0x41adcb
mov edx, esi
sub edx, ecx
mov al, byte [edx]
cmp al, byte [esp + 0x74]
jne 0x41adcb
cmp ecx, 1
je 0x41add0
mov al, byte [edx + 1]
cmp al, byte [esp + 0x75]
je 0x41add0
inc esi
cmp esi, edi
jb 0x41ad70
mov edx, dword [esp + 0x15c]
mov ebp, dword [esp + 0x54]
cmp byte [esi - 1], 0xd
jne 0x41adf5
cmp ebx, 1
je 0x41adeb
cmp ebx, 2
jne 0x41adf5
cmp esi, edi
jae 0x41adf5
cmp byte [esi], 0xa
jne 0x41adf5
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
test edx, edx
jne 0x41ae76
cmp dword [esp + 0xc4], edx
jne 0x41ae76
mov edx, dword [esp + 0x40]
test edx, edx
js 0x41ae76
mov eax, ebx
sub eax, esi
cmp eax, 0x3e8
jge 0x41ae76
xor ecx, ecx
cmp dword [esp + 0x14], ecx
setge cl
add ecx, esi
cmp ecx, dword [esp + 0x34]
jbe 0x41ae76
cmp dword [esp + 0x2c], 0
je 0x41ae53
cmp ecx, ebx
jae 0x41afce
mov edi, dword [esp + 0x3c]
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x41ae69
cmp eax, edi
je 0x41ae69
cmp ecx, ebx
jb 0x41ae41
jmp 0x41ae6a
cmp ecx, ebx
jae 0x41afce
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x41ae69
cmp ecx, ebx
jb 0x41ae5b
jmp 0x41ae6a
dec ecx
cmp ecx, ebx
jae 0x41afce
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xac]
xor ebp, ebp
push ebp
push ebp
push ebp
push dword [esp + 0xfc]
lea eax, [esp + 0x58]
push eax
push 2
push ebp
push esi
mov ecx, esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0x68], ebp
call fcn.004173da
mov edi, eax
cmp dword [esp + 0xa4], ebp
je 0x41aec8
mov eax, dword [esp + 0x20]
test eax, eax
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0x20], eax
cmp edi, 0xfffffc1a
je 0x41afd2
cmp edi, 0xfffffc1b
je 0x41af08
mov eax, 0xfffffc1c
cmp edi, eax
je 0x41aefd
jle 0x41afd4
cmp edi, 0xfffffc1e
jle 0x41af08
test edi, edi
jne 0x41afd4
jmp 0x41af08
mov ebp, dword [esp + 0xb8]
cmp ebp, esi
jne 0x41af0b
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
xor edi, edi
cmp dword [esp + 0x38], edi
je 0x41af78
test ebx, ebx
je 0x41af4e
cmp esi, edx
jae 0x41af78
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push edx
mov edx, ebx
mov ecx, esi
call fcn.0040b2ed
test eax, eax
jne 0x41b048
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
jmp 0x41af78
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp esi, eax
ja 0x41af78
mov al, byte [esi]
cmp al, byte [esp + 0x74]
jne 0x41af78
cmp ecx, 1
je 0x41b048
mov al, byte [esi + 1]
cmp al, byte [esp + 0x75]
je 0x41b048
mov esi, ebp
cmp dword [esp + 0x30], edi
jne 0x41b048
mov eax, dword [esp + 0x10]
cmp ebp, eax
ja 0x41b048
cmp byte [ebp - 1], 0xd
jne 0x41afbe
cmp ebp, eax
jae 0x41afbe
cmp byte [ebp], 0xa
jne 0x41afbe
mov eax, dword [esp + 0x18]
test byte [eax + 0xc], 0x20
jne 0x41afbe
cmp ebx, 1
je 0x41afbb
cmp ebx, 2
je 0x41afbb
cmp dword [esp + 0x64], 2
jne 0x41afbe
lea esi, [ebp + 1]
and dword [esp + 0xe4], edi
mov ebp, dword [esp + 0x54]
jmp 0x41ac4e
xor edi, edi
jmp 0x41b050
mov edi, ebp
xor esi, esi
inc esi
cmp edi, esi
je 0x41afe3
cmp edi, 0xfffffc19
jne 0x41b04c
mov ebx, dword [esp + 0x164]
cmp dword [esp + 0x28], ebp
je 0x41b03b
cmp ebx, 4
jl 0x41b019
lea eax, [ebx*4 - 8]
push eax
mov eax, dword [esp + 0x58]
add eax, 8
push eax
mov eax, dword [esp + 0x168]
add eax, 8
push eax
call dword [0xfe8014f4]
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 [0xfe83f358]
cmp dword [esp + 0x80], ebp
je 0x41b0a1
mov eax, ebp
jmp 0x41b0ad
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x54]
cmp dword [esp + 0x28], 0
je 0x41b05f
mov ecx, ebp
call dword [0xfe83f358]
push 0xfffffffffffffff4
pop eax
test edi, edi
je 0x41b06e
cmp edi, eax
je 0x41b06e
mov eax, edi
jmp 0x41b0e3
mov edx, dword [esp + 0x20]
test edx, edx
je 0x41b09c
cmp dword [esp + 0x164], 1
jle 0x41b0e3
sub edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x160]
sub ebx, dword [esp + 0x150]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
jmp 0x41b0e3
or eax, 0xffffffff
jmp 0x41b0e3
mov eax, dword [esp + 0xc8]
cdq
sub eax, edx
sar eax, 1
cmp ebx, 2
jge 0x41b0b6
mov eax, ebp
jmp 0x41b0e3
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x160]
mov dword [edx], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, dword [esp + 0xb0]
mov dword [edx + 4], ecx
jmp 0x41b0e3
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c
ret 0x18