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

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x41ff80
test dword [0x87ed4c], 0xffffffff
jne 0x4204e0
call fcn.007663a0
jmp fcn.0041ff50
push edi
push esi
push ebp
push ebx
sub esp, 0x2c
mov ebp, dword [esp + 0x50]
mov ebx, ebp
not ebx
mov dword [esp + 0xc], ecx
and ebx, 1
and ebp, 2
mov esi, 0x28
mov dword [esp + 0x24], edx
mov dword [esp + 8], eax
mov dword [esp + 0x28], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], ebp
lea ebp, [ebx + 7]
and ebp, 0xfffffff8
cmp ebx, 0x28
cmovle ebp, esi
mov dword [edx], 0
test ecx, ecx
je 0x4200a8
mov eax, ecx
movsx edx, byte [eax]
test edx, edx
je 0x4200a8
mov edx, dword [esp + 8]
mov ebx, dword [edx + 8]
lea ecx, [ebx + 1]
mov dword [esp + 4], ecx
lea eax, [ebx + ebx + 2]
call fcn.0041ebd4
mov ebx, eax
test ebx, ebx
je 0x4204cc
mov edi, dword [esp + 0xc]
mov esi, str.:memory:
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x420022
test dl, dl
je 0x42001e
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x420022
add edi, 2
add esi, 2
test dl, dl
jne 0x420002
xor eax, eax
jmp 0x420027
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42003e
xor eax, eax
mov byte [ebx], 0
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 1
jmp 0x420064
mov byte [ebx], 0
push ebx
push dword [esp + 8]
push dword [esp + 0x14]
mov eax, dword [esp + 0x14]
push eax
call dword [eax + 0x24]
add esp, 0x10
mov dword [esp + 4], eax
movsx eax, byte [ebx]
mov dword [esp + 0x1c], 0
mov edi, ebx
test eax, eax
je 0x420072
inc edi
movsx eax, byte [edi]
test eax, eax
jne 0x42006a
sub edi, ebx
and edi, 0x3fffffff
cmp dword [esp + 4], 0
jne 0x420095
mov edx, dword [esp + 8]
lea eax, [edi + 8]
cmp eax, dword [edx + 8]
jle 0x4200b0
mov dword [esp + 4], 0xe
mov eax, ebx
call fcn.004c69c4
mov eax, dword [esp + 4]
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret
xor ebx, ebx
mov dword [esp + 0x1c], ebx
xor edi, edi
mov edx, dword [esp + 8]
mov ecx, dword [edx + 4]
add ecx, 7
and ecx, 0xfffffff8
lea esi, [ecx + ebp*2]
add esi, edi
lea eax, [esi + edi + 0xea]
mov dword [esp + 4], eax
call fcn.0041ebd4
mov esi, eax
test esi, esi
je 0x4204c1
push dword [esp + 4]
push 0
push esi
call fcn.00766740
add esp, 0xc
mov ecx, dword [esp + 8]
lea eax, [esi + 0xb0]
mov dword [esi + 0xa8], eax
lea edx, [esi + 0xe0]
mov dword [esi + 0x38], edx
mov eax, dword [ecx + 4]
add eax, 7
and eax, 0xfffffff8
lea edx, [eax + esi + 0xe0]
mov dword [esi + 0x40], edx
add edx, ebp
add ebp, edx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x84], ebp
test ebx, ebx
je 0x42017a
lea eax, [edi + ebp + 1]
mov dword [esi + 0x88], eax
push edi
push ebx
push ebp
call fcn.007666b0
push edi
push ebx
push dword [esi + 0x88]
call fcn.007666b0
add esp, 0x18
add edi, dword [esi + 0x88]
mov dword [edi + 4], 0x6c616e72
mov dword [edi], 0x756f6a2d
mov eax, dword [esi + 0x84]
movsx edx, byte [eax]
test edx, edx
jne 0x420173
mov eax, dword [esi + 0x88]
mov byte [eax], 0
mov eax, ebx
call fcn.004c69c4
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 8]
mov dword [esi], eax
mov dword [esi + 0x78], ecx
je 0x42022f
mov eax, dword [esp + 0xc]
movsx edx, byte [eax]
test edx, edx
je 0x42022f
cmp dword [esp + 0x1c], 0
jne 0x42022f
mov dword [esp + 0x10], 0
and ecx, 0x7f1f
lea eax, [esp + 0x10]
push eax
push ecx
push dword [esi + 0x38]
push dword [esi + 0x84]
mov edx, dword [esp + 0x18]
push edx
call dword [edx + 0x18]
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0x10]
and eax, 1
mov dword [esp + 0x14], eax
test edi, edi
jne 0x42049c
cmp dword [esp + 0x14], 0
je 0x4201fd
xor eax, eax
mov dword [esp + 0x18], eax
mov ebx, 0x400
jmp 0x420247
mov eax, esi
call fcn.00420a20
mov edx, dword [esi + 0x70]
xor eax, eax
mov dword [esp + 0x18], eax
cmp edx, 0x400
jbe 0x420228
mov eax, 0x2000
cmp edx, 0x2000
cmovae edx, eax
movzx ebx, dx
jmp 0x420247
mov ebx, 0x400
jmp 0x420247
mov byte [esi + 0xe], 4
and ecx, 1
mov ebx, 0x400
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 1
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x42037f
movzx eax, byte [esi + 0xd]
test eax, eax
je 0x420268
cmp dword [esi + 0x18], 0
je 0x420268
mov edx, dword [esi + 0x7c]
jmp 0x420374
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0xa8]
cmp dword [eax + 0xc], 0
jne 0x420374
test ebx, ebx
je 0x420374
cmp edx, ebx
je 0x420374
mov eax, dword [0x84f7c4]
test eax, eax
je 0x42029c
push eax
call dword [0x8303c8]
pop ecx
mov eax, ebx
call fcn.004b94c0
mov dword [esp + 0xc], eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4202b8
push eax
call dword [0x8303d0]
pop ecx
cmp dword [esp + 0xc], 0
jne 0x4202cc
mov edx, dword [esi + 0x7c]
mov edi, 7
jmp 0x420374
cmp dword [esi + 0x24], 0
jne 0x420309
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4202fa
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [eax + 0x10], 1
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x4202e4
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [esi + 0xa8]
call fcn.004c2060
mov byte [esi + 0x15], 0
mov eax, dword [esi + 0x98]
mov dword [esi + 0x7c], ebx
mov dword [esp + 4], eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x420327
push eax
call dword [0x8303c8]
pop ecx
cmp dword [esp + 4], 0
je 0x420337
mov eax, dword [esp + 4]
call fcn.004b8fd0
mov eax, dword [0x84f7c4]
test eax, eax
je 0x420348
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0xc]
mov ebp, dword [esi + 0xa8]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x42036e
push eax
call dword [0x830404]
pop ecx
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x14], ebx
mov edx, dword [esi + 0x7c]
movzx eax, word [esi + 0x76]
mov word [esi + 0x76], ax
movzx ebx, dx
test edi, edi
jne 0x42049c
xor eax, eax
mov ebp, 1
xor edx, edx
cmp dword [esp + 0x1c], 0
mov ecx, 0x472b90
pxor xmm0, xmm0
cmovne ecx, eax
cmove edx, ebp
mov ebp, dword [esi + 0xa8]
lea edi, [ebp + 0xf]
and edi, 0xfffffff0
movq qword [ebp], xmm0
mov dword [ebp + 8], eax
mov word [ebp + 0xc], ax
mov byte [ebp + 0xe], al
movq qword [ebp + 0x20], xmm0
movq qword [ebp + 0x28], xmm0
movaps xmmword [edi], xmm0
movaps xmmword [edi + 0x10], xmm0
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x20], 0
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], 0x50
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x10], 0x64
mov byte [esi + 6], al
je 0x420406
cmp dword [esp + 0x14], 0
je 0x420406
mov eax, 1
jmp 0x420408
xor eax, eax
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esi + 7], al
xor eax, eax
mov ebp, 1
test ebx, ebx
mov byte [esi + 0x15], dl
cmove eax, ebp
mov edi, 0x50
mov dword [esi + 0x80], 0x3fffffff
mov byte [esi + 0xb], bl
mov byte [esi + 4], bl
mov byte [esi + 0x12], bl
mov byte [esi + 0xd], dl
mov edx, 0xffffffff
mov byte [esi + 0xc], cl
mov byte [esi + 8], bl
mov byte [esi + 9], al
mov eax, esi
mov byte [esi + 0xa], 2
mov word [esi + 0x74], di
mov dword [esi + 0xa0], edx
mov dword [esi + 0xa4], edx
call fcn.00420a20
cmp dword [esp + 0x28], 0
jne 0x420477
mov byte [esi + 5], 2
jmp 0x420482
cmp dword [esp + 0x1c], 0
je 0x420482
mov byte [esi + 5], 4
mov edx, dword [esp + 0x24]
mov dword [esi + 0x94], 0x586b10
xor eax, eax
mov dword [edx], esi
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esi + 0x38]
mov eax, dword [ebx]
test eax, eax
je 0x4204b0
push ebx
call dword [eax + 4]
pop ecx
mov dword [ebx], 0
mov eax, esi
call fcn.004c69c4
mov eax, edi
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret
test ebx, ebx
je 0x4204cc
mov eax, ebx
call fcn.004c69c4
mov eax, 7
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
push esi
push ebp
push ebx
sub esp, 0x28
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x4c]
mov ebx, ebp
not ebx
and ebx, 1
mov dword [esp + 0x24], ebx
and ebp, 2
mov dword [esp + 0x1c], ebp
mov ebx, dword [eax + 4]
lea ebp, [ebx + 7]
and ebp, 0xfffffff8
cmp ebx, 0x28
jg 0x42051c
mov ebp, 0x28
mov dword [edx], 0
test ecx, ecx
je 0x420607
mov eax, ecx
movsx edx, byte [eax]
test edx, edx
je 0x420607
mov edx, dword [esp + 8]
mov ebx, dword [edx + 8]
lea ecx, [ebx + 1]
mov dword [esp + 4], ecx
lea eax, [ebx + ebx + 2]
call fcn.0041ebd4
mov ebx, eax
test ebx, ebx
je 0x420a0f
mov edi, dword [esp + 0xc]
mov esi, str.:memory:
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x420581
test dl, dl
je 0x42057d
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x420581
add edi, 2
add esi, 2
test dl, dl
jne 0x420561
xor eax, eax
jmp 0x420586
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42059d
xor eax, eax
mov byte [ebx], 0
mov dword [esp + 4], eax
mov dword [esp + 0x18], 1
jmp 0x4205c3
mov byte [ebx], 0
push ebx
push dword [esp + 8]
push dword [esp + 0x14]
mov eax, dword [esp + 0x14]
push eax
call dword [eax + 0x24]
add esp, 0x10
mov dword [esp + 4], eax
mov dword [esp + 0x18], 0
movsx eax, byte [ebx]
mov edi, ebx
test eax, eax
je 0x4205d1
inc edi
movsx eax, byte [edi]
test eax, eax
jne 0x4205c9
sub edi, ebx
and edi, 0x3fffffff
cmp dword [esp + 4], 0
jne 0x4205f4
lea eax, [edi + 8]
mov edx, dword [esp + 8]
cmp eax, dword [edx + 8]
jle 0x42060f
mov dword [esp + 4], 0xe
mov eax, ebx
call fcn.004c69c4
mov eax, dword [esp + 4]
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
xor ebx, ebx
mov dword [esp + 0x18], ebx
xor edi, edi
mov edx, dword [esp + 8]
mov ecx, dword [edx + 4]
add ecx, 7
and ecx, 0xfffffff8
lea esi, [ecx + ebp*2]
add esi, edi
lea eax, [esi + edi + 0xea]
mov dword [esp + 4], eax
call fcn.0041ebd4
mov esi, eax
test esi, esi
je 0x420a04
push dword [esp + 4]
push 0
push esi
call fcn.00766740
add esp, 0xc
lea eax, [esi + 0xb0]
mov dword [esi + 0xa8], eax
lea edx, [esi + 0xe0]
mov dword [esi + 0x38], edx
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
add eax, 7
and eax, 0xfffffff8
lea edx, [eax + esi + 0xe0]
mov dword [esi + 0x40], edx
add edx, ebp
mov dword [esi + 0x3c], edx
add ebp, edx
mov dword [esi + 0x84], ebp
test ebx, ebx
je 0x4206d9
lea eax, [edi + ebp + 1]
mov dword [esi + 0x88], eax
push edi
push ebx
push ebp
call fcn.007666b0
push edi
push ebx
push dword [esi + 0x88]
call fcn.007666b0
add esp, 0x18
add edi, dword [esi + 0x88]
mov dword [edi + 4], 0x6c616e72
mov dword [edi], 0x756f6a2d
mov eax, dword [esi + 0x84]
movsx edx, byte [eax]
test edx, edx
jne 0x4206d2
mov eax, dword [esi + 0x88]
mov byte [eax], 0
mov eax, ebx
call fcn.004c69c4
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 8]
mov dword [esi], eax
mov dword [esi + 0x78], ecx
cmp dword [esp + 0xc], 0
je 0x42078f
mov eax, dword [esp + 0xc]
movsx edx, byte [eax]
test edx, edx
je 0x42078f
cmp dword [esp + 0x18], 0
jne 0x42078f
mov dword [esp + 0xc], 0
and ecx, 0x7f1f
lea eax, [esp + 0xc]
push eax
push ecx
push dword [esi + 0x38]
push dword [esi + 0x84]
mov edx, dword [esp + 0x18]
push edx
call dword [edx + 0x18]
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0xc]
and eax, 1
mov dword [esp + 0x10], eax
test edi, edi
jne 0x4209df
cmp dword [esp + 0x10], 0
je 0x42075e
mov dword [esp + 0x14], 0
mov ebp, 0x400
jmp 0x4207a7
mov eax, esi
call fcn.00420a20
mov eax, dword [esi + 0x70]
mov dword [esp + 0x14], 0
cmp eax, 0x400
jbe 0x420788
cmp eax, 0x2000
jb 0x420783
mov eax, 0x2000
movzx ebp, ax
jmp 0x4207a7
mov ebp, 0x400
jmp 0x4207a7
mov byte [esi + 0xe], 4
and ecx, 1
mov dword [esp + 0x10], ecx
mov ebp, 0x400
mov dword [esp + 0x14], 1
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x4208d7
movzx eax, byte [esi + 0xd]
test eax, eax
je 0x4207c8
cmp dword [esi + 0x18], 0
je 0x4207c8
mov edx, dword [esi + 0x7c]
jmp 0x4208cc
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0xa8]
cmp dword [eax + 0xc], 0
jne 0x4208cc
test ebp, ebp
je 0x4208cc
cmp edx, ebp
je 0x4208cc
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4207fc
push eax
call dword [0x8303c8]
pop ecx
mov eax, ebp
call fcn.004b94c0
mov dword [esp + 8], eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x420818
push eax
call dword [0x8303d0]
pop ecx
cmp dword [esp + 8], 0
jne 0x42082c
mov edx, dword [esi + 0x7c]
mov edi, 7
jmp 0x4208cc
cmp dword [esi + 0x24], 0
jne 0x420861
mov eax, dword [esi + 0xac]
test eax, eax
je 0x420852
mov dword [esp + 4], esi
mov dword [eax + 0x10], 1
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x420840
mov esi, dword [esp + 4]
mov eax, dword [esi + 0xa8]
call fcn.004c2060
mov byte [esi + 0x15], 0
mov dword [esi + 0x7c], ebp
mov eax, dword [esi + 0x98]
mov dword [esp + 4], eax
mov eax, dword [0x84f7c4]
test eax, eax
je 0x42087f
push eax
call dword [0x8303c8]
pop ecx
cmp dword [esp + 4], 0
je 0x42088f
mov eax, dword [esp + 4]
call fcn.004b8fd0
mov eax, dword [0x84f7c4]
test eax, eax
je 0x4208a0
push eax
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 8]
mov dword [esi + 0x98], eax
mov ebx, dword [esi + 0xa8]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x4208c6
push eax
call dword [0x830404]
pop ecx
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x14], ebp
mov edx, dword [esi + 0x7c]
movzx ebp, dx
movzx eax, word [esi + 0x76]
mov word [esi + 0x76], ax
test edi, edi
jne 0x4209df
cmp dword [esp + 0x18], 0
jne 0x4208f2
mov ebx, 0x472b90
mov ecx, 1
jmp 0x4208f6
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov edi, dword [esi + 0xa8]
mov eax, 0x30
mov dword [edi + eax - 4], edx
mov dword [edi + eax - 8], edx
mov dword [edi + eax - 0xc], edx
mov dword [edi + eax - 0x10], edx
sub eax, 0x10
jne 0x420903
mov dword [edi + 0x14], ebp
mov dword [edi + 0x18], 0x50
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], esi
mov dword [edi + 0x10], 0x64
mov eax, dword [esp + 0x24]
mov byte [esi + 6], al
cmp dword [esp + 0x1c], 0
je 0x42094e
cmp dword [esp + 0x10], 0
je 0x42094e
mov eax, 1
jmp 0x420950
xor eax, eax
mov byte [esi + 7], al
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x15], cl
mov dword [esi + 0x80], 0x3fffffff
mov edx, dword [esp + 0x14]
mov byte [esi + 0xb], dl
mov byte [esi + 4], dl
mov byte [esi + 0x12], dl
mov byte [esi + 0xd], cl
mov ebx, dword [esp + 0x10]
mov byte [esi + 0xc], bl
mov byte [esi + 8], dl
xor eax, eax
test edx, edx
sete al
mov byte [esi + 9], al
mov byte [esi + 0xa], 2
mov ebp, 0x50
mov word [esi + 0x74], bp
mov edi, 0xffffffff
mov dword [esi + 0xa0], edi
mov dword [esi + 0xa4], edi
mov eax, esi
call fcn.00420a20
cmp dword [esp + 0x24], 0
jne 0x4209ba
mov byte [esi + 5], 2
jmp 0x4209c5
cmp dword [esp + 0x18], 0
je 0x4209c5
mov byte [esi + 5], 4
mov dword [esi + 0x94], 0x586b10
mov edx, dword [esp + 0x20]
mov dword [edx], esi
xor eax, eax
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esi + 0x38]
mov eax, dword [ebx]
test eax, eax
je 0x4209f3
push ebx
call dword [eax + 4]
pop ecx
mov dword [ebx], 0
mov eax, esi
call fcn.004c69c4
mov eax, edi
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
test ebx, ebx
je 0x420a0f
mov eax, ebx
call fcn.004c69c4
mov eax, 7
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret