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

Disassembly:
mov ecx, dword [0x57fc4c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x412dc2
sub esp, 0x74
xor eax, eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x41288b
mov ebp, eax
mov eax, edx
mov edx, ebp
mov dword [esp + 0x60], ecx
jmp 0x412a10
mov dword [esp + 0x5c], edx
movzx eax, byte [ecx]
mov dword [esp + 0x58], eax
mov dword [esp], ecx
call fcn.00411b60
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
mov edx, ecx
and ecx, 0x7f
test edx, 0x80
jne 0x4128da
test ecx, ecx
je 0x412a22
shr ecx, 3
mov dword [esp + 0x24], ecx
xor ebx, ebx
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x40]
jmp 0x412d6b
test ecx, ecx
jne 0x4128e7
xor ecx, ecx
xor edx, edx
jmp 0x412c8a
mov dword [esp + 0x2c], ecx
xor edx, edx
xor ebx, ebx
jmp 0x412a51
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x2c]
imul ebp, ecx
mov dword [esp + 0x3c], ebp
cmp ecx, 0x19
ja 0x412925
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00411b70
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
jmp 0x412b43
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov edx, dword [esp + 0x28]
sub ecx, edx
mov dword [esp + 0x14], ecx
lea ebx, [ecx + 7]
shr ebx, 3
mov dword [esp + 4], ebx
call fcn.00411b50
mov eax, dword [esp + 0x14]
and eax, 7
mov ecx, dword [esp + 8]
test eax, eax
jne 0x412964
mov edi, dword [esp + 0x3c]
mov edx, ecx
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
jmp 0x4129a8
mov dword [esp + 0x38], eax
movzx eax, byte [ecx]
mov dword [esp + 0x58], eax
mov dword [esp], ecx
call fcn.00411b60
mov eax, dword [esp + 0x38]
lea ecx, [eax - 8]
neg ecx
mov ebx, dword [esp + 0x58]
shr ebx, cl
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x28]
lea esi, [eax + ebp]
mov edi, dword [esp + 0x3c]
sub edi, eax
cmp ecx, 0x20
sbb eax, eax
and ebx, eax
mov ecx, ebp
shl ebx, cl
mov eax, dword [esp + 0x40]
or ebx, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], esi
mov ecx, edi
shr edi, 3
mov eax, dword [esp + 0x5c]
jmp 0x412b0b
and ecx, 7
test ecx, ecx
jbe 0x4129e5
movzx edx, byte [edx]
mov ebp, 1
shl ebp, cl
dec ebp
and ebp, edx
mov edx, ecx
mov ecx, esi
shl ebp, cl
add edx, ecx
cmp ecx, 0x20
sbb edi, edi
and ebp, edi
or ebx, ebp
jmp 0x4129e7
mov edx, esi
mov ecx, dword [esp + 0x70]
jmp 0x412885
mov byte [edx], bl
mov dword [esp], edx
call fcn.00411b60
mov eax, dword [esp + 0x28]
add eax, 0xfffffff8
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x40]
shr ebx, 8
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebx
cmp eax, 8
jae 0x4129f0
jmp 0x412894
mov edx, dword [esp + 0x5c]
mov eax, edx
mov ecx, dword [esp + 0x7c]
sub eax, ecx
mov ecx, dword [esp + 0x28]
mov ebp, ecx
neg ecx
and ecx, 7
lea eax, [ebp + eax*8]
mov dword [esp + 0xc], eax
add ecx, ebp
mov ebx, dword [esp + 0x40]
jmp 0x412cfa
lea ebx, [ecx + 7]
mov edx, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], edx
movzx ecx, byte [eax]
mov dword [esp + 0x58], ecx
mov dword [esp], eax
call fcn.00411b60
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
mov edx, ecx
and ecx, 0x7f
mov ebx, ecx
mov ecx, dword [esp + 0x18]
shl ebx, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebx, ebp
mov ebp, dword [esp + 0x3c]
or ebp, ebx
test edx, 0x80
jne 0x412a4c
jmp 0x4128f4
mov dword [esp + 0x30], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x6c], eax
movzx eax, byte [edx]
mov dword [esp + 0x58], eax
mov dword [esp], edx
call fcn.00411b60
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
shl eax, cl
mov edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x5c], ebx
cmp ecx, 0x20
sbb ebp, ebp
and eax, ebp
mov ebp, dword [esp + 0x54]
or ebp, eax
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x6c]
xchg ebp, ebx
mov byte [eax], bl
xchg ebp, ebx
mov dword [esp], eax
call fcn.00411b60
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x40]
shr ebx, 8
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
test edi, edi
ja 0x412a97
jmp 0x4129be
mov dword [esp + 0x20], ecx
shl edx, 8
mov dword [esp + 0x10], edx
movzx ecx, byte [eax]
mov dword [esp + 0x58], ecx
mov dword [esp], eax
call fcn.00411b70
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
or edx, eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x20]
add ecx, 8
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jb 0x412b14
jbe 0x412b5a
sub ecx, ebx
shr edx, cl
cmp ecx, 0x20
sbb ebp, ebp
and edx, ebp
jmp 0x412b5c
mov ebx, ecx
cmp ebx, 1
jne 0x412b78
cmp edx, 1
jne 0x412b72
mov eax, 0x19
mov edx, 0x1ffffff
jmp 0x412b89
mov eax, dword [esp + 0x3c]
jmp 0x412b89
lea ebp, [ebx + ebx]
cmp ebp, 0x19
ja 0x412b87
mov eax, ebx
jmp 0x412c49
mov eax, ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x3c]
jmp 0x412bb1
mov ecx, dword [esp + 0x58]
sub ebp, ecx
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, ecx
cmp eax, ebp
ja 0x412bca
mov dword [esp + 0x3c], ebp
mov ecx, esi
shl edx, cl
add eax, ecx
cmp ecx, 0x20
sbb esi, esi
and edx, esi
or ebx, edx
jmp 0x412c30
test ebp, ebp
jbe 0x412bfb
mov dword [esp + 0x68], edi
mov ecx, ebp
mov eax, 1
shl eax, cl
lea edi, [esi + ecx]
cmp ecx, 0x20
sbb ebp, ebp
and eax, ebp
dec eax
and edx, eax
mov ecx, esi
shl edx, cl
cmp ecx, 0x20
sbb eax, eax
and edx, eax
or ebx, edx
mov esi, edi
mov edi, dword [esp + 0x68]
mov edx, esi
mov ecx, dword [esp + 0x70]
mov eax, edi
jmp 0x412885
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebx
mov byte [edi], bl
mov dword [esp], edi
call fcn.00411b60
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x4c]
shr ebx, 8
mov eax, dword [esp + 0x50]
add eax, 0xfffffff8
mov ebp, dword [esp + 0x3c]
cmp eax, 8
jae 0x412c08
jmp 0x412ba3
sbb ebp, ebp
mov ecx, ebx
mov esi, edx
shl esi, cl
and esi, ebp
or edx, esi
lea ebx, [ecx + ecx]
cmp ebx, 0x20
jbe 0x412c3a
test eax, eax
je 0x412c80
mov dword [esp + 0x44], edx
mov ecx, eax
mov eax, 0x19
xor edx, edx
div ecx
imul ecx, eax
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb ebp, ebp
and edx, ebp
dec edx
mov ebp, dword [esp + 0x44]
and edx, ebp
mov ebx, ecx
jmp 0x412b87
call fcn.00438820
lea edx, [ecx + 7]
mov ecx, ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ecx
movzx ebx, byte [eax]
mov dword [esp + 0x58], ebx
mov dword [esp], eax
call fcn.00411b60
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
mov edx, ecx
and ecx, 0x7f
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
shl ebx, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebx, ebp
mov ebp, dword [esp + 0x2c]
or ebp, ebx
test edx, 0x80
jne 0x412c85
mov ecx, ebp
jmp 0x4128e7
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], ebx
mov byte [edx], bl
mov dword [esp], edx
call fcn.00411b60
mov eax, dword [esp + 0x28]
lea ecx, [eax - 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x40]
shr ebx, 8
mov eax, dword [esp + 0xc]
test ecx, ecx
ja 0x412cd2
mov dword [esp + 0x80], eax
add esp, 0x74
ret
mov dword [esp + 0x34], ebx
movzx ecx, byte [eax]
mov dword [esp + 0x48], ecx
mov dword [esp], eax
call fcn.00411b60
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
shl eax, cl
mov edx, dword [esp + 0x40]
or edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 4]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0x64]
mov byte [ebp], dl
mov dword [esp], ebp
call fcn.00411b60
mov ebp, dword [esp + 4]
mov esi, dword [esp + 0x40]
shr esi, 8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], esi
mov dword [esp + 0x64], ebp
cmp ebx, ecx
jb 0x412d09
and edx, 7
test edx, edx
ja 0x412d84
mov ecx, dword [esp + 0x28]
jmp 0x412db5
mov dword [esp + 0x2c], edx
movzx ecx, byte [eax]
mov dword [esp + 0x58], ecx
mov dword [esp], eax
call fcn.00411b60
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
shl esi, cl
mov eax, dword [esp + 0x40]
or esi, eax
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x2c]
add ecx, edx
mov ebp, dword [esp + 0x64]
mov edx, ecx
mov ecx, eax
mov eax, ebp
mov ebx, esi
jmp 0x412885
call fcn.004704c0
jmp fcn.00412860