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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40f2ea
sub esp, 0x70
mov edx, dword [0x876d30]
mov ecx, dword [esp + 0x74]
sub ecx, edx
mov edx, dword [0x876d28]
mov ebx, ecx
shr ecx, 4
sub edx, ecx
dec edx
mov dword [esp + 0x6c], edx
shr ebx, 2
mov dword [esp + 0x24], ebx
mov ecx, ebx
and ecx, 3
mov ebp, dword [esp + 0x80]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x78]
cmp edi, 8
je 0x40f283
mov eax, edi
movzx edi, byte [ebp + 0xf]
xchg edi, eax
test al, 0x40
xchg edi, eax
jne 0x40f250
mov ecx, dword [ebp]
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jae 0x40f241
mov edx, dword [ebp + 4]
shr edx, 2
cmp edx, 0x19
ja 0x40f217
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x2c]
cmp ebx, edx
jae 0x40ee74
lea eax, [ebx + 8]
movzx ebp, byte [esi]
mov ecx, ebx
shl ebp, cl
cmp ecx, 0x20
sbb ecx, ecx
and ecx, ebp
mov ebx, dword [esp + 0x20]
or ecx, ebx
mov ebx, esi
inc ebx
mov esi, ebx
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
cmp ebx, edx
jb 0x40ee35
mov edx, ecx
shr ecx, 2
lea ebx, [ecx + ecx]
cmp ebx, 0x19
ja 0x40f20e
mov ebx, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x20], ebx
cmp ecx, 0x20
ja 0x40eeb2
shl ebx, cl
cmp ecx, 0x20
sbb eax, eax
and ebx, eax
mov eax, dword [esp + 0x20]
or ebx, eax
add ecx, ecx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x20], ebx
cmp ecx, 0x20
jbe 0x40ee94
test esi, esi
je 0x40f207
mov ecx, eax
mov eax, 0x19
xor edx, edx
div esi
imul esi, eax
mov eax, ecx
mov ecx, esi
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebp, edx
lea edx, [ebp - 1]
and edx, ebx
xor ebx, ebx
mov ebp, ecx
xor esi, esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x40f1fc
mov ecx, edx
movzx edx, byte [ebx]
inc ebx
mov dword [esp + 0x48], eax
mov eax, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x3c]
cmp edi, ebp
jne 0x40f1c3
mov ebp, dword [esp + 0x80]
mov edi, dword [ebp + 4]
shr edi, 2
test edi, edi
je 0x40f155
cmp edi, 2
jae 0x40f14e
mov ebp, 2
mov edi, dword [esp + 0x24]
test edi, 3
jne 0x40f136
mov edi, edx
and edx, 0xf
or edx, 0xd0
cmp ebp, 4
ja 0x40efdc
mov ecx, 4
mov ebx, dword [esp + 0x6c]
cmp ecx, ebp
jbe 0x40efd6
mov esi, ecx
sub ecx, ebp
add ecx, 0xfffffffc
neg ecx
mov ebp, 1
shl ebp, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
lea ebp, [edi - 1]
mov edi, ebp
shl ebp, 4
or edi, ebp
and edi, edx
shr eax, 2
cmp esi, eax
ja 0x40efce
xchg edi, eax
mov byte [ebx], al
xchg edi, eax
mov ecx, ebx
dec ecx
lea edx, [esi + 4]
cmp edx, eax
ja 0x40efb7
mov byte [ecx], 0
add edx, 4
mov ebx, ecx
dec ebx
mov ecx, ebx
cmp edx, eax
jbe 0x40efa8
xor ebx, ebx
add eax, 2
cmp edx, eax
jne 0x40efca
movzx eax, byte [ecx]
and eax, 0xffffffcc
or eax, ebx
mov byte [ecx], al
add esp, 0x70
ret
mov edx, esi
mov ecx, ebx
mov ebx, edi
jmp 0x40efb9
mov esi, ecx
mov edi, edx
jmp 0x40ef93
mov eax, dword [esp + 0x6c]
mov byte [eax], dl
dec eax
shr edi, 4
mov edx, dword [esp + 0x28]
add edx, 0xfffffff8
mov dword [esp + 0x40], eax
mov eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], edx
and edi, 0xf
or edi, 0xf0
mov edx, dword [esp + 0x1c]
add edx, 4
cmp edx, ebp
jae 0x40f12d
xchg edi, ebx
mov byte [eax], bl
xchg edi, ebx
dec eax
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x34]
shr edx, 4
cmp esi, ebx
je 0x40f0a9
mov edi, dword [esp + 0x28]
cmp edi, 8
jae 0x40f0a0
movzx esi, byte [ebx]
mov ecx, edi
shl esi, cl
cmp ecx, 0x20
sbb eax, eax
and eax, esi
or edx, eax
mov eax, ebx
inc eax
mov ebx, edx
and edx, 0xf
or edx, 0xf0
mov esi, dword [esp + 0x1c]
add esi, 8
cmp esi, ebp
jae 0x40f08f
mov edi, dword [esp + 0x6c]
mov byte [edi], dl
mov edx, edi
dec edx
shr ebx, 4
mov edi, dword [esp + 0x60]
mov edi, ebx
mov dword [esp + 0x1c], esi
mov ebx, eax
mov esi, dword [esp + 0x64]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x20]
jmp 0x40effe
mov eax, dword [esp + 0x6c]
mov ecx, esi
mov ebx, eax
mov eax, dword [esp + 0x78]
jmp 0x40ef6c
add edi, 0xfffffff8
mov ecx, edi
mov eax, ebx
jmp 0x40f050
test ebx, ebx
je 0x40f0f6
movzx ebx, byte [ebx]
mov ecx, dword [esp + 0x28]
shl ebx, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebx
or edx, edi
mov ebx, dword [esp + 0x30]
lea edi, [ebx + ecx]
cmp edi, 8
jae 0x40f0e7
mov ebx, dword [esp + 0x60]
movzx esi, byte [ebx]
mov ecx, edi
shl esi, cl
cmp ecx, 0x20
sbb eax, eax
and eax, esi
or edx, eax
mov eax, ebx
inc eax
jmp 0x40f050
lea ecx, [ebx + ecx - 8]
mov ebx, dword [esp + 0x60]
mov eax, ebx
jmp 0x40f050
mov edi, dword [esp + 0x28]
cmp edi, 8
jae 0x40f125
mov ecx, edi
mov esi, dword [esp + 0x20]
shl esi, cl
cmp ecx, 0x20
sbb eax, eax
and eax, esi
or edx, eax
mov eax, dword [esp + 0x30]
lea esi, [eax + ecx]
lea ecx, [esi - 8]
mov eax, ebx
mov ebx, dword [esp + 0x60]
jmp 0x40f050
mov eax, dword [esp + 0x30]
mov esi, edi
jmp 0x40f117
mov esi, edx
mov edx, edi
jmp 0x40f093
lea eax, [0x710976]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00425c90
ud2
mov ebp, edi
jmp 0x40ef43
mov dword [esp], ebp
call fcn.00442e80
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x68], ecx
call fcn.004264d0
lea eax, [0x70ba49]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00426d40
call fcn.004266a0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.00426d40
call fcn.004266e0
call fcn.00426540
lea eax, [0x714426]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.00425c90
ud2
test ebp, ebp
je 0x40f1f5
mov eax, edi
xor edx, edx
div ebp
lea edx, [eax - 1]
imul ebp, edx
mov edx, dword [esp + 0x80]
mov eax, edx
mov edx, dword [edx + 4]
lea edi, [ebp + edx]
shr edi, 2
mov edx, dword [esp + 0x34]
mov ebp, eax
mov eax, dword [esp + 0x78]
jmp 0x40ef2d
call fcn.00424740
ud2
mov dword [esp + 0x28], ecx
mov ecx, edx
jmp 0x40ef10
call fcn.00424740
ud2
mov edx, dword [esp + 0x20]
jmp 0x40eedf
add edx, 7
shr edx, 3
lea eax, [edx - 1]
mov ebx, esi
lea edx, [edx + ebx - 1]
shr ecx, 2
shl eax, 3
sub ecx, eax
mov eax, dword [esp + 0x78]
mov ebx, esi
mov ebp, ecx
mov esi, edx
xor edx, edx
xor ecx, ecx
jmp 0x40eee5
mov ebx, esi
xor ecx, ecx
mov ebp, ecx
xor esi, esi
mov edx, ebp
jmp 0x40eee5
mov ebx, esi
add ebx, 4
mov esi, dword [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0xc], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
call fcn.0040f300
add esp, 0x70
ret
mov eax, dword [ebp]
cmp eax, 4
jne 0x40f2c3
mov eax, dword [esp + 0x7c]
cmp eax, 4
jne 0x40f2b3
movzx eax, byte [edx]
mov ebx, 0x33
shl ebx, cl
not ebx
and eax, ebx
mov byte [edx], al
mov ebx, 0x11
shl ebx, cl
or eax, ebx
mov byte [edx], al
add esp, 0x70
ret
movzx eax, byte [edx]
mov ebx, 0x13
shl ebx, cl
or eax, ebx
mov byte [edx], al
jmp 0x40f2af
movzx eax, byte [esi]
movzx ebx, byte [edx]
mov ebp, 0x33
shl ebp, cl
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebx, ebp
mov byte [edx], bl
and eax, 3
or eax, 0x10
shl eax, cl
or ebx, eax
mov byte [edx], bl
add esp, 0x70
ret
call fcn.004486b0
jmp fcn.0040ed80