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

Disassembly:
mov ecx, dword [0x57adc8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x415b12
sub esp, 0x74
xor eax, eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x4155db
mov ebp, eax
mov eax, edx
mov edx, ebp
mov dword [esp + 0x60], ecx
jmp 0x415760
mov dword [esp + 0x5c], edx
movzx eax, byte [ecx]
mov dword [esp + 0x58], eax
mov dword [esp], ecx
call fcn.00413580
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
mov edx, ecx
and ecx, 0x7f
test edx, 0x80
jne 0x41562a
test ecx, ecx
je 0x415772
shr ecx, 3
mov dword [esp + 0x24], ecx
xor ebx, ebx
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x40]
jmp 0x415abb
test ecx, ecx
jne 0x415637
xor ecx, ecx
xor edx, edx
jmp 0x4159da
mov dword [esp + 0x2c], ecx
xor edx, edx
xor ebx, ebx
jmp 0x4157a1
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x2c]
imul ebp, ecx
mov dword [esp + 0x3c], ebp
cmp ecx, 0x19
ja 0x415675
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00413590
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
jmp 0x415893
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.00413570
mov eax, dword [esp + 0x14]
and eax, 7
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4156b4
mov edi, dword [esp + 0x3c]
mov edx, ecx
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
jmp 0x4156f8
mov dword [esp + 0x38], eax
movzx eax, byte [ecx]
mov dword [esp + 0x58], eax
mov dword [esp], ecx
call fcn.00413580
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 0x41585b
and ecx, 7
test ecx, ecx
jbe 0x415735
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 0x415737
mov edx, esi
mov ecx, dword [esp + 0x70]
jmp 0x4155d5
mov byte [edx], bl
mov dword [esp], edx
call fcn.00413580
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 0x415740
jmp 0x4155e4
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 0x415a4a
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.00413580
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 0x41579c
jmp 0x415644
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.00413580
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.00413580
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 0x4157e7
jmp 0x41570e
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.00413590
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 0x415864
jbe 0x4158aa
sub ecx, ebx
shr edx, cl
cmp ecx, 0x20
sbb ebp, ebp
and edx, ebp
jmp 0x4158ac
mov ebx, ecx
cmp ebx, 1
jne 0x4158c8
cmp edx, 1
jne 0x4158c2
mov eax, 0x19
mov edx, 0x1ffffff
jmp 0x4158d9
mov eax, dword [esp + 0x3c]
jmp 0x4158d9
lea ebp, [ebx + ebx]
cmp ebp, 0x19
ja 0x4158d7
mov eax, ebx
jmp 0x415999
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 0x415901
mov ecx, dword [esp + 0x58]
sub ebp, ecx
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, ecx
cmp eax, ebp
ja 0x41591a
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 0x415980
test ebp, ebp
jbe 0x41594b
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 0x4155d5
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebx
mov byte [edi], bl
mov dword [esp], edi
call fcn.00413580
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 0x415958
jmp 0x4158f3
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 0x41598a
test eax, eax
je 0x4159d0
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 0x4158d7
call fcn.0043a980
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.00413580
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 0x4159d5
mov ecx, ebp
jmp 0x415637
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], ebx
mov byte [edx], bl
mov dword [esp], edx
call fcn.00413580
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 0x415a22
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.00413580
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.00413580
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 0x415a59
and edx, 7
test edx, edx
ja 0x415ad4
mov ecx, dword [esp + 0x28]
jmp 0x415b05
mov dword [esp + 0x2c], edx
movzx ecx, byte [eax]
mov dword [esp + 0x58], ecx
mov dword [esp], eax
call fcn.00413580
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 0x4155d5
call fcn.004688b0
jmp fcn.004155b0