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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [esp + 0xa4]
mov esi, dword [ecx + 0x48]
mov ebp, dword [esi + 4]
mov dword [esp + 0x50], ebp
test eax, eax
je 0x41012e
cmp dword [esi + 0x34], 0
jne 0x41012e
mov dword [ecx + 0x1c], 3
jmp 0x4106c6
mov dword [esp], eax
mov dword [esp + 0x4c], edx
movzx edx, word [esp + 0x70]
movzx eax, word [esp + 0x68]
movzx edx, dx
movzx ebx, word [esp + 0x78]
mov dword [esp + 0x48], edx
mov edi, eax
mov dword [esp + 4], eax
lea edi, [eax + edx]
add edi, ebx
xor edx, edx
add edi, dword [esp + 0xb0]
setb dl
add edi, ebp
adc edx, 0
add edi, 0x2e
adc edx, 0
cmp edi, 0xffffffff
sbb edx, 0
jb 0x410181
mov dword [ecx + 0x1c], 0xf
jmp 0x4106c6
mov dword [esp + 0x40], ebx
movzx edx, word [esp + 0x90]
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm0
mov word [esp + 0x30], 0
mov dword [esp + 0xc], 0x2014b50
xor eax, eax
test dx, dx
mov dword [esp + 8], esi
mov ebx, 0x14
cmove ebx, eax
mov byte [esp + 0x12], bl
movzx ebx, word [esp + 0x94]
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], bh
movzx ebx, word [esp + 0x9c]
mov byte [esp + 0x16], dl
mov byte [esp + 0x17], dh
movzx edx, word [esp + 0x98]
mov byte [esp + 0x18], dl
mov byte [esp + 0x19], dh
mov edx, dword [esp + 0x8c]
mov byte [esp + 0x1a], bl
mov byte [esp + 0x1b], bh
mov byte [esp + 0x1c], dl
mov byte [esp + 0x1d], dh
mov ebx, edx
shr ebx, 0x10
mov byte [esp + 0x1e], bl
mov esi, dword [esp + 0x88]
shr edx, 0x18
mov byte [esp + 0x1f], dl
mov edi, dword [esp + 0x84]
neg esi
mov edx, 0
sbb edx, edx
or edx, edi
mov byte [esp + 0x20], dl
mov byte [esp + 0x21], dh
mov ebx, edx
shr ebx, 0x10
mov byte [esp + 0x22], bl
mov esi, dword [esp + 0x80]
shr edx, 0x18
mov byte [esp + 0x23], dl
mov edx, dword [esp + 0x7c]
neg esi
mov ebx, 0
sbb ebx, ebx
or ebx, edx
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x26], dl
mov edx, dword [esp + 0xa8]
shr ebx, 0x18
mov byte [esp + 0x27], bl
movzx eax, word [esp + 0x70]
mov esi, dword [esp + 0xb0]
lea ebx, [esi + eax]
movzx eax, word [esp + 0x68]
mov byte [esp + 0x28], al
mov byte [esp + 0x29], ah
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bh
movzx eax, word [esp + 0x78]
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], ah
mov byte [esp + 0x32], dl
mov byte [esp + 0x33], dh
mov ebx, edx
shr ebx, 0x10
mov byte [esp + 0x34], bl
mov ebx, dword [esp + 8]
shr edx, 0x18
mov byte [esp + 0x35], dl
neg dword [esp]
mov edx, 0
sbb edx, edx
mov eax, dword [esp + 0xa0]
or edx, eax
mov byte [esp + 0x36], dl
mov byte [esp + 0x37], dh
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x38], al
shr edx, 0x18
mov byte [esp + 0x39], dl
lea esi, [ebp + 0x2e]
mov edx, dword [ebx + 8]
cmp edx, esi
mov dword [esp], ecx
mov dword [esp + 0x44], ebp
jae 0x41033a
test edx, edx
mov eax, 1
cmovne eax, edx
nop
mov edi, eax
add eax, eax
cmp edi, esi
jb 0x410310
push edi
push dword [ebx + 0xc]
push dword [ebx]
push dword [ecx + 0x34]
call dword [ecx + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx], eax
mov dword [ebx + 8], edi
mov ebp, dword [esp + 0x44]
jmp 0x41033c
mov eax, dword [ebx]
mov dword [ebx + 4], esi
mov ecx, dword [ebx + 0xc]
mov edi, ecx
mov ebx, ecx
mov edx, ecx
mov esi, ecx
or esi, 0x2e
and edi, 0x2e
imul edi, esi
and ebx, 0xffffffd1
not edx
mov esi, ebp
and esi, edx
and edx, 0x2e
imul edx, ebx
mov ebx, ecx
add edx, edi
mov edi, ebp
not edi
and edi, ecx
or ebx, ebp
and ecx, ebp
imul ecx, ebx
mov ebx, dword [esp + 8]
add ecx, eax
imul edi, esi
add edi, ecx
lea eax, [esp + 0xc]
push edx
push eax
push edi
call fcn.00417810
add esp, 0xc
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov eax, dword [esp + 4]
lea ebp, [edi + eax]
cmp esi, ebp
jae 0x4103d8
test esi, esi
mov eax, 1
cmovne eax, esi
nop dword [eax + eax]
mov esi, eax
add eax, eax
cmp esi, ebp
jb 0x4103b0
push esi
push dword [ebx + 0xc]
push dword [ebx]
mov eax, dword [esp + 0xc]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx], eax
mov dword [ebx + 8], esi
movzx ecx, word [esp + 0x70]
mov dword [ebx + 4], ebp
cmp word [esp + 0x68], 0
je 0x41044a
mov ecx, dword [ebx + 0xc]
mov edx, ecx
mov esi, dword [esp + 4]
mov dword [esp + 0x3c], edi
mov edi, esi
not edi
and edi, ecx
mov eax, ecx
mov ebx, ecx
mov ebp, ecx
or ebp, esi
and edx, esi
imul edx, ebp
mov ebp, dword [esp + 0x3c]
not ebp
and ebp, ecx
not eax
and esi, eax
imul esi, edi
add esi, edx
mov edx, dword [esp + 0x3c]
or ebx, edx
and ecx, edx
imul ecx, ebx
mov ebx, dword [esp + 8]
and eax, edx
imul eax, ebp
add eax, ecx
add eax, dword [ebx]
push esi
push dword [esp + 0x50]
push eax
call fcn.00417810
movzx ecx, word [esp + 0x7c]
add esp, 0xc
mov ebp, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov eax, dword [esp + 0x48]
lea edi, [eax + ebp]
cmp esi, edi
jae 0x410496
test esi, esi
mov eax, 1
cmovne eax, esi
nop
mov esi, eax
add eax, eax
cmp esi, edi
jb 0x410460
push esi
push dword [ebx + 0xc]
push dword [ebx]
mov eax, dword [esp + 0xc]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx], eax
mov dword [ebx + 8], esi
mov eax, dword [esp + 0xb0]
movzx ecx, word [esp + 0x70]
jmp 0x41049d
mov eax, dword [esp + 0xb0]
mov dword [ebx + 4], edi
test cx, cx
je 0x410505
mov ecx, dword [ebx + 0xc]
mov edi, ecx
mov esi, dword [esp + 0x48]
mov edx, esi
not edx
and edx, ecx
mov eax, ecx
mov dword [esp + 4], ecx
mov ebx, ecx
or ebx, esi
and edi, esi
imul edi, ebx
mov ebx, ebp
not ebx
and ebx, ecx
not eax
and esi, eax
imul esi, edx
add esi, edi
mov edx, dword [esp + 4]
or edx, ebp
and ecx, ebp
imul ecx, edx
and eax, ebp
imul eax, ebx
mov ebx, dword [esp + 8]
add eax, ecx
add eax, dword [ebx]
push esi
push dword [esp + 0x70]
push eax
call fcn.00417810
mov eax, dword [esp + 0xbc]
add esp, 0xc
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
lea ebp, [edi + eax]
cmp esi, ebp
jae 0x41054f
test esi, esi
mov eax, 1
cmovne eax, esi
nop word cs:[eax + eax]
mov esi, eax
add eax, eax
cmp esi, ebp
jb 0x410520
push esi
push dword [ebx + 0xc]
push dword [ebx]
mov eax, dword [esp + 0xc]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx], eax
mov dword [ebx + 8], esi
mov eax, dword [esp + 0xb0]
mov dword [ebx + 4], ebp
test eax, eax
je 0x4105b0
mov ecx, dword [ebx + 0xc]
mov ebx, ecx
mov esi, eax
not esi
and esi, ecx
mov edx, eax
mov eax, ecx
mov dword [esp + 4], ecx
mov ebp, ecx
or ebp, edx
and ebx, edx
imul ebx, ebp
mov ebp, edi
not ebp
and ebp, ecx
not eax
and edx, eax
imul edx, esi
add edx, ebx
mov esi, dword [esp + 4]
or esi, edi
and ecx, edi
imul ecx, esi
mov ebx, dword [esp + 8]
and eax, edi
imul eax, ebp
add eax, ecx
add eax, dword [ebx]
push edx
push dword [esp + 0xb0]
push eax
call fcn.00417810
add esp, 0xc
mov ebp, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov eax, dword [esp + 0x40]
lea edi, [eax + ebp]
cmp esi, edi
jae 0x4105f8
test esi, esi
mov eax, 1
cmovne eax, esi
nop word cs:[eax + eax]
mov esi, eax
add eax, eax
cmp esi, edi
jb 0x4105d0
push esi
push dword [ebx + 0xc]
push dword [ebx]
mov eax, dword [esp + 0xc]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx], eax
mov dword [ebx + 8], esi
mov dword [ebx + 4], edi
cmp word [esp + 0x78], 0
je 0x410656
mov ecx, dword [ebx + 0xc]
mov edi, ecx
mov esi, dword [esp + 0x40]
mov edx, esi
not edx
and edx, ecx
mov eax, ecx
mov dword [esp + 4], ecx
mov ebx, ecx
or ebx, esi
and edi, esi
imul edi, ebx
mov ebx, ebp
not ebx
and ebx, ecx
not eax
and esi, eax
imul esi, edx
add esi, edi
mov edx, dword [esp + 4]
or edx, ebp
and ecx, ebp
imul ecx, edx
and eax, ebp
imul eax, ebx
mov ebx, dword [esp + 8]
add eax, ecx
add eax, dword [ebx]
push esi
push dword [esp + 0x78]
push eax
call fcn.00417810
add esp, 0xc
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
lea edi, [esi + 1]
cmp ecx, edi
jae 0x4106d0
test ecx, ecx
mov eax, 1
cmovne eax, ecx
nop dword [eax]
mov ebp, eax
add eax, eax
cmp ebp, edi
jb 0x410670
push ebp
push dword [ebx + 0x1c]
push dword [ebx + 0x10]
mov eax, dword [esp + 0xc]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x410698
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x18], ebp
jmp 0x4106d3
mov edi, dword [esp + 0x44]
cmp dword [ebx + 8], edi
mov esi, dword [esp]
jae 0x4106bc
push edi
push dword [ebx + 0xc]
push dword [ebx]
push dword [esi + 0x34]
call dword [esi + 0x30]
add esp, 0x10
test eax, eax
je 0x4106bf
mov dword [ebx], eax
mov dword [ebx + 8], edi
mov dword [ebx + 4], edi
mov dword [esi + 0x1c], 0x10
xor eax, eax
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x14], edi
mov edx, dword [ebx + 0x1c]
mov ebx, edx
mov ecx, edx
not ecx
mov edi, ecx
and edi, 1
neg edi
and edi, edx
mov ebp, edx
or ebp, 1
and ebx, 1
neg ebx
and ebx, ebp
mov ebp, edx
and edi, 0xfffffffe
add edi, ebx
mov ebx, esi
not ebx
and ebx, edx
or ebp, esi
and edx, esi
imul edx, ebp
add edx, eax
and ecx, esi
imul ecx, ebx
add ecx, edx
lea eax, [esp + 0x50]
push edi
push eax
push ecx
call fcn.00417810
add esp, 0xc
mov eax, 1
jmp 0x4106c8