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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40fc48
sub esp, 0x7c
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov eax, ebx
xor ecx, ecx
mov edi, ecx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x28], edi
cmp ecx, 8
jb 0x40f551
cmp edx, 1
jne 0x40f525
xchg edi, eax
mov byte [ebx], al
xchg edi, eax
inc ebx
shr edi, 8
add ecx, 0xfffffff8
jmp 0x40f502
and edi, 0xf
or edi, 0xf0
xchg edi, eax
mov byte [ebx], al
xchg edi, eax
dec ebx
mov edi, dword [esp + 0x28]
shr edi, 4
and edi, 0xf
or edi, 0xf0
xchg edi, eax
mov byte [ebx], al
xchg edi, eax
dec ebx
mov edi, dword [esp + 0x28]
shr edi, 8
jmp 0x40f520
movzx edx, byte [esi]
mov dword [esp + 0x30], edx
inc esi
and edx, 0x7f
mov ebx, dword [esp + 0x30]
test ebx, 0x80
jne 0x40f6fd
test ebx, 0x7f
jne 0x40f611
test ebp, ebp
je 0x40f599
xor edx, edx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x8c]
mov esi, ebp
mov ebp, edx
mov edx, dword [esp + 0x8c]
jmp 0x40f4fb
mov edx, dword [esp + 0x8c]
cmp edx, 1
jne 0x40f5db
mov edx, dword [esp + 0x70]
mov ebx, edx
sub ebx, eax
lea eax, [ecx + ebx*8]
mov ebx, ecx
neg ecx
and ecx, 7
add ecx, ebx
test ecx, ecx
jbe 0x40f5d0
xchg edi, eax
mov byte [edx], al
xchg edi, eax
add ecx, 0xfffffff8
mov ebx, edx
inc ebx
mov edx, ebx
shr edi, 8
test ecx, ecx
ja 0x40f5bd
mov dword [esp + 0x90], eax
add esp, 0x7c
ret
mov edx, dword [esp + 0x70]
mov ebx, edx
sub eax, ebx
lea eax, [ecx + eax*4]
mov ebx, ecx
neg ecx
and ecx, 3
add ecx, ebx
test ecx, ecx
jbe 0x40f5d0
mov ebx, edi
and edi, 0xf
or edi, 0xf0
xchg edi, eax
mov byte [edx], al
xchg edi, eax
add ecx, 0xfffffffc
mov ebp, edx
dec ebp
mov edx, ebp
shr ebx, 4
mov edi, ebx
jmp 0x40f5ef
shr edx, 3
mov dword [esp + 0xc], edx
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x20]
cmp ebp, edx
jae 0x40f689
movzx ebx, byte [esi]
shl ebx, cl
cmp ecx, 0x20
sbb edx, edx
and ebx, edx
or ebx, edi
mov edx, esi
inc edx
mov esi, dword [esp + 0x8c]
cmp esi, 1
jne 0x40f6c5
mov edi, dword [esp + 0x6c]
mov byte [edi], bl
inc edi
shr ebx, 8
inc ebp
mov dword [esp + 0x20], ebp
mov esi, edx
mov dword [esp + 0x6c], edi
mov edi, ebx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x20]
cmp ebp, edx
jb 0x40f63e
mov edx, ebx
and ebx, 7
test edx, 7
jbe 0x40f6bd
movzx edx, byte [esi]
shl edx, cl
cmp ecx, 0x20
sbb ebp, ebp
and edx, ebp
or edx, edi
mov ebp, esi
inc ebp
add ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
mov edi, edx
mov edx, dword [esp + 0x84]
jmp 0x40f582
mov ebx, ecx
mov ebp, esi
mov edx, edi
jmp 0x40f6a9
mov edi, ebx
and ebx, 0xf
or ebx, 0xf0
mov eax, dword [esp + 0x6c]
mov byte [eax], bl
dec eax
mov ebx, edi
shr edi, 4
and edi, 0xf
or edi, 0xf0
xchg edi, ebx
mov byte [eax], bl
xchg edi, ebx
dec eax
mov edi, eax
shr ebx, 8
mov eax, dword [esp + 0x88]
jmp 0x40f665
test ebx, 0x7f
jne 0x40fc41
xor ebx, ebx
movzx ebp, byte [esi]
mov dword [esp + 0x30], ebp
inc esi
and ebp, 0x7f
mov ecx, ebx
shl ebp, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
or edi, edx
mov edx, dword [esp + 0x30]
test edx, 0x80
je 0x40f745
lea ebx, [ecx + 7]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x84]
mov edx, edi
mov edi, dword [esp + 0x28]
jmp 0x40f70b
mov dword [esp + 0x1c], edi
xor ecx, ecx
xor edx, edx
movzx ebx, byte [esi]
mov ebp, esi
inc ebp
mov dword [esp + 0x78], ebp
mov esi, ebx
and ebx, 0x7f
shl ebx, cl
cmp ecx, 0x20
sbb edi, edi
and ebx, edi
or ebx, edx
test esi, 0x80
je 0x40f77c
add ecx, 7
mov edi, dword [esp + 0x1c]
mov esi, ebp
mov edx, ebx
jmp 0x40f74d
mov edx, dword [esp + 0x1c]
imul ebx, edx
cmp edx, 0x19
ja 0x40fa09
mov esi, dword [esp + 0x8c]
cmp esi, 1
jne 0x40f999
mov edi, dword [esp + 0x70]
mov ecx, ebp
mov ebp, edi
dec ebp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 8]
cmp esi, edx
jae 0x40f801
mov eax, dword [esp]
shl eax, 8
movzx ecx, byte [ebp]
or eax, ecx
mov ecx, ebp
dec ecx
mov ebp, ecx
lea ecx, [esi + 8]
mov esi, dword [esp + 0x8c]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 8]
cmp esi, edx
jb 0x40f7cc
mov ebp, dword [esp]
cmp esi, edx
jbe 0x40f992
sub esi, edx
mov ecx, esi
shr ebp, cl
cmp ecx, 0x20
sbb esi, esi
and ebp, esi
mov dword [esp + 0x14], edx
cmp edx, 1
jne 0x40f922
cmp ebp, 1
jne 0x40f919
mov ecx, 0x19
mov edx, 0x1ffffff
mov dword [esp + 8], ecx
mov dword [esp], edx
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x74], edi
cmp ebx, ecx
jb 0x40f8ae
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp ecx, 0x20
sbb ebx, ebx
and ebx, edx
or ebx, esi
mov edx, dword [esp + 8]
lea esi, [ecx + edx]
cmp ebp, 1
jne 0x40f8f8
cmp esi, 8
jb 0x40f88d
mov byte [edi], bl
mov ecx, edi
inc ecx
mov edi, ecx
shr ebx, 8
add esi, 0xfffffff8
cmp esi, 8
jae 0x40f87b
mov ecx, dword [esp + 0x24]
sub ecx, edx
mov edx, dword [esp]
mov dword [esp + 0x10], esi
mov esi, ebx
mov ebx, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x74], edi
cmp ebx, ecx
jae 0x40f857
test ebx, ebx
jbe 0x40f8f0
mov ecx, ebx
mov ebp, 1
shl ebp, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
lea ebp, [edi - 1]
and ebp, edx
mov ecx, dword [esp + 0x10]
shl ebp, cl
cmp ecx, 0x20
sbb edx, edx
and edx, ebp
or edx, esi
add ebx, ecx
mov ecx, ebx
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov edi, edx
mov edx, dword [esp + 0x84]
jmp 0x40f582
mov ebx, dword [esp + 0x10]
mov edx, esi
jmp 0x40f8d8
cmp esi, 4
jb 0x40f88d
mov ecx, ebx
and ebx, 0xf
or ebx, 0xf0
mov byte [edi], bl
mov ebx, edi
dec ebx
mov edi, ebx
shr ecx, 4
add esi, 0xfffffffc
mov ebx, ecx
jmp 0x40f8f8
mov ecx, ebx
mov edx, ebp
jmp 0x40f839
lea esi, [edx + edx]
cmp esi, 0x19
ja 0x40f98c
mov ecx, edx
mov dword [esp + 0x2c], ebp
cmp edx, 0x20
ja 0x40f956
mov ecx, edx
shl ebp, cl
cmp ecx, 0x20
sbb esi, esi
and ebp, esi
mov esi, dword [esp + 0x2c]
or ebp, esi
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ebp
cmp edx, 0x20
jbe 0x40f935
test ecx, ecx
je 0x40f985
mov eax, 0x19
xor edx, edx
div ecx
imul ecx, eax
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, edx
lea edx, [esi - 1]
and edx, ebp
mov eax, dword [esp + 0x88]
jmp 0x40f839
call dbg.runtime.panicdivide
ud2
mov ecx, edx
mov edx, ebp
jmp 0x40f979
mov edx, esi
jmp 0x40f819
mov edi, dword [esp + 0x70]
mov ecx, ebp
mov ebp, edi
inc ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 8]
cmp esi, edx
jae 0x40fa01
mov eax, dword [esp]
shl eax, 4
movzx ecx, byte [ebp]
and ecx, 0xf
or eax, ecx
mov ecx, ebp
inc ecx
mov ebp, ecx
lea ecx, [esi + 4]
mov esi, dword [esp + 0x8c]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 8]
cmp esi, edx
jb 0x40f9c9
mov ebp, dword [esp]
jmp 0x40f804
mov esi, dword [esp + 0x10]
sub edx, esi
mov dword [esp + 4], edx
mov edi, dword [esp + 0x8c]
cmp edi, 1
jne 0x40fb22
mov edi, dword [esp + 0x70]
mov ebp, edi
lea edi, [edx + 7]
shr edi, 3
sub ebp, edi
mov dword [esp + 0x30], ebp
mov edi, ebp
and edx, 7
mov ebp, dword [esp + 4]
test ebp, 7
je 0x40fb17
movzx ebp, byte [edi]
lea edi, [edx - 8]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shr ebp, cl
cmp ecx, 0x20
sbb edi, edi
and ebp, edi
mov ecx, esi
shl ebp, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
mov ebp, dword [esp + 0x28]
or edi, ebp
mov ebp, dword [esp + 0x30]
inc ebp
lea esi, [ecx + edx]
sub ebx, edx
mov dword [esp + 0x24], ebx
mov ecx, ebx
shr ebx, 3
mov edx, dword [esp + 0x70]
mov dword [esp + 0x64], edx
test ebx, ebx
jbe 0x40fac7
movzx eax, byte [ebp]
mov ecx, esi
shl eax, cl
cmp ecx, 0x20
sbb ecx, ecx
and ecx, eax
or edi, ecx
mov eax, ebp
inc eax
mov ebp, eax
xchg edi, eax
mov byte [edx], al
xchg edi, eax
dec ebx
mov eax, edx
inc eax
mov edx, eax
shr edi, 8
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
test ebx, ebx
ja 0x40fa91
mov ebx, ecx
and ecx, 7
test ebx, 7
jbe 0x40fb11
movzx ebx, byte [ebp]
mov ebp, 1
shl ebp, cl
dec ebp
and ebx, ebp
mov ebp, ecx
mov ecx, esi
shl ebx, cl
cmp ecx, 0x20
sbb edx, edx
and edx, ebx
or edx, edi
lea ebx, [ebp + ecx]
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x78]
mov edi, edx
mov edx, dword [esp + 0x84]
mov esi, ecx
mov ecx, ebx
mov ebx, esi
jmp 0x40f582
mov ebx, esi
mov edx, edi
jmp 0x40faf5
mov ebp, edi
mov edi, dword [esp + 0x28]
jmp 0x40fa7c
mov edi, dword [esp + 0x70]
mov ebp, edi
mov dword [esp + 0x30], ebp
lea edi, [edx + 3]
shr edi, 2
mov dword [esp + 0x18], edi
add ebp, edi
and edx, 3
mov edi, dword [esp + 4]
test edi, 3
je 0x40fc38
movzx ebp, byte [ebp]
and ebp, 0xf
lea edi, [edx - 4]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shr ebp, cl
cmp ecx, 0x20
sbb edi, edi
and edi, ebp
mov ecx, esi
shl edi, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebp, edi
mov edi, dword [esp + 0x28]
or ebp, edi
mov dword [esp + 0x28], ebp
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
lea ebp, [ebp + edi - 1]
lea esi, [ecx + edx]
sub ebx, edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ebx
mov edx, ebx
shr ebx, 2
mov edi, dword [esp + 0x70]
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], ecx
test ebx, ebx
jbe 0x40fbf5
movzx eax, byte [ebp]
and eax, 0xf
mov ecx, esi
shl eax, cl
cmp ecx, 0x20
sbb edx, edx
and edx, eax
mov eax, dword [esp + 0x28]
or edx, eax
mov eax, ebp
dec eax
mov ebp, eax
mov eax, edx
and edx, 0xf
or edx, 0xf0
mov byte [edi], dl
dec ebx
mov edx, edi
dec edx
mov edi, edx
shr eax, 4
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], ecx
test ebx, ebx
ja 0x40fba9
mov ebx, edx
and edx, 3
test ebx, 3
jbe 0x40fc32
movzx ebx, byte [ebp]
mov ebp, ecx
mov ecx, edx
mov edi, 1
shl edi, cl
dec edi
and edi, ebx
mov ecx, esi
shl edi, cl
cmp ecx, 0x20
sbb ebx, ebx
and ebx, edi
or ebx, ebp
add edx, ecx
mov ecx, dword [esp + 0x68]
mov ebp, ebx
mov ebx, edx
mov edx, ebp
jmp 0x40faf9
mov edx, esi
mov ebx, ecx
jmp 0x40fc23
mov ecx, dword [esp + 0x28]
jmp 0x40fb90
mov edi, edx
jmp 0x40f745
call dbg.runtime.morestack_noctxt
jmp dbg.runtime.runGCProg