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

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
mov al, byte [esi + 0x20]
neg al
mov edx, dword [esp + 0x40]
mov ebp, ecx
push edi
push edx
sbb eax, eax
and eax, 0xffffffe0
add eax, 0x61
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
cmp eax, 0x3f
setl bl
xor ecx, ecx
test bl, bl
setne cl
sub eax, ecx
mov edi, eax
mov eax, dword [esp + 0x40]
push edi
push eax
lea ecx, [esp + 0x2c]
call fcn.00404f10
mov ecx, 0x3f
sub ecx, edi
mov eax, 1
shl eax, cl
sub eax, 1
cmp dword [esp + 0x24], eax
jne 0x41ffe3
xor eax, eax
cmp dword [esp + eax*4 + 0x28], 0
jne 0x41ffcc
add eax, 1
cmp eax, 2
jb 0x41ff24
cmp byte [esp + 0x20], 0
je 0x41ff47
mov word [esp + 0x10], 0x2d
jmp 0x41ff6a
cmp byte [esi + 0xd], 0
je 0x41ff56
mov word [esp + 0x10], 0x2b
jmp 0x41ff6a
cmp byte [esi + 0xe], 0
je 0x41ff65
mov word [esp + 0x10], 0x20
jmp 0x41ff6a
mov byte [esp + 0x10], 0
cmp byte [esi + 0x20], 0
mov eax, 0x456698
jne 0x41ff7a
mov eax, 0x456694
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41ff80
lea edi, [esp + 0x10]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x41ff92
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x34]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.0041f560
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x18
xor eax, eax
mov edi, edi
cmp dword [esp + eax*4 + 0x28], 0
jne 0x42006a
add eax, 1
cmp eax, 2
jb 0x41ffd0
cmp byte [esp + 0x20], 0
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
je 0x420005
lea edx, [esp + 0x44]
push edx
mov ecx, ebp
mov dword [esp + 0x48], 0x2d
call fcn.00434b30
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
mov dword [esp + 0x48], 0x30
call fcn.00434b30
mov cl, byte [esi + 0x20]
neg cl
lea edx, [esp + 0x44]
push edx
sbb ecx, ecx
and ecx, 0xffffffe0
add ecx, 0x78
mov dword [esp + 0x48], ecx
mov ecx, ebp
call fcn.00434b30
test bl, bl
je 0x42011a
cmp dword [esp + 0x24], 0
jne 0x4200fc
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
mov dword [esp + 0x48], 0x30
call fcn.00434b30
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x42016c
cmp byte [esp + 0x20], 0
je 0x42007a
mov word [esp + 0x10], 0x2d
jmp 0x42009d
cmp byte [esi + 0xd], 0
je 0x420089
mov word [esp + 0x10], 0x2b
jmp 0x42009d
cmp byte [esi + 0xe], 0
je 0x420098
mov word [esp + 0x10], 0x20
jmp 0x42009d
mov byte [esp + 0x10], 0
cmp byte [esi + 0x20], 0
mov eax, 0x456690
jne 0x4200ad
mov eax, 0x45668c
mov edx, eax
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4200b0
lea edi, [esp + 0x10]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4200c2
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x34]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.0041f560
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x18
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
mov dword [esp + 0x48], 0x31
call fcn.00434b30
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x42016c
lea ecx, [edi - 1]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
jns 0x420135
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, dword [esp + eax*4 + 0x28]
shr edx, cl
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
and edx, 1
add edx, 0x30
mov dword [esp + 0x48], edx
call fcn.00434b30
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov eax, esi
shr eax, 0x1f
add esi, esi
add ebx, ebx
or ebx, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 0x18], 0
jg 0x42018c
xor eax, eax
cmp dword [esp + eax*4 + 0x28], 0
jne 0x42018c
add eax, 1
cmp eax, 2
jb 0x420178
jmp 0x420227
lea edx, [esp + 0x44]
push edx
mov ecx, ebp
mov dword [esp + 0x48], 0x2e
call fcn.00434b30
mov eax, 0x40
sub eax, edi
mov ecx, 0x20
sub ecx, eax
mov edi, esi
shr edi, cl
mov edx, ebx
mov ecx, eax
shl edx, cl
mov dword [esp + 0x18], esi
shl esi, cl
or edx, edi
mov edi, edx
xor ebx, ebx
mov eax, edi
shr eax, 0x1c
cmp eax, 9
ja 0x4201d7
add eax, 0x30
mov dword [esp + 0x44], eax
jmp 0x4201e3
mov ecx, dword [esp + 0x10]
lea edx, [eax + ecx - 0xa]
mov dword [esp + 0x44], edx
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
call fcn.00434b30
mov ecx, dword [esp + 0x38]
mov eax, esi
shr eax, 0x1c
shl edi, 4
or edi, eax
mov eax, dword [ecx + 0x18]
shl esi, 4
add ebx, 1
cmp ebx, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
jl 0x4201c4
test eax, eax
jg 0x420227
xor eax, eax
cmp dword [esp + eax*4 + 0x18], 0
jne 0x4201c4
add eax, 1
cmp eax, 2
jb 0x420218
mov edx, dword [esp + 0x38]
mov al, byte [edx + 0x20]
neg al
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
sbb eax, eax
and eax, 0xffffffe0
add eax, 0x70
mov dword [esp + 0x48], eax
call fcn.00434b30
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x420351
xor eax, eax
jmp 0x420260
cmp dword [esp + eax*4 + 0x28], 0
jne 0x420351
add eax, 1
cmp eax, 2
jb 0x420260
xor esi, esi
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
mov dword [esp + 0x48], 0x2b
call fcn.00434b30
mov ebx, dword [ebp]
lea esp, [esp]
mov eax, 0x66666667
imul esi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
lea edx, [edi + edi*4]
add edx, edx
sub esi, edx
add esi, 0x30
mov dword [esp + 0x44], esi
mov esi, dword [ebp]
cmp ebx, esi
ja 0x4202fd
add esi, 1
cmp esi, dword [ebp + 8]
jbe 0x4202c6
push esi
mov ecx, ebp
call fcn.00429970
mov dword [ebp], esi
sub esi, ebx
sub esi, 1
je 0x4202ed
mov eax, dword [ebp + 0xc]
lea ecx, [esi*4]
push ecx
lea edx, [eax + ebx*4]
push edx
lea eax, [eax + ebx*4 + 4]
push eax
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0xc
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + ebx*4]
test eax, eax
je 0x4202fd
mov edx, dword [esp + 0x44]
mov dword [eax], edx
mov esi, edi
test esi, esi
jne 0x420290
cmp byte [esp + 0x20], 0
mov eax, dword [esp + 0x40]
je 0x420311
add eax, 1
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x3c]
push esi
push eax
mov ecx, ebp
call fcn.00442620
mov ecx, dword [esp + 0x34]
push 0xffffffffffffffff
push esi
push ecx
mov ecx, ebp
call fcn.0041ee20
cmp esi, dword [ebp]
jae 0x420347
cmp esi, dword [ebp + 8]
jbe 0x420344
push esi
mov ecx, ebp
call fcn.00429970
mov dword [ebp], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x18
mov edx, dword [esp + 0x48]
add esi, edx
jns 0x420275
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
mov dword [esp + 0x48], 0x2d
call fcn.00434b30
neg esi
jmp 0x420289