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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0x100]
mov esi, dword [esp + 0x118]
mov ebx, dword [esp + 0x104]
mov edi, dword [esp + 0x108]
mov ebp, dword [esp + 0x114]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x50], edx
mov byte [esp + 0x2a], dl
and edx, 0xf
mov dword [esp + 0x54], ebx
mov dword [esp + 0x40], eax
mov byte [esp + 0x2b], al
and eax, 0xf
cmp al, dl
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x2c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ecx
je 0x4126e0
xor ebx, ebx
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_free
add esp, 0xec
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp al, 4
je 0x412910
cmp ebx, ebp
sete cl
mov esi, ecx
movzx ecx, byte [esp + 0x2a]
cmp byte [esp + 0x2b], cl
mov ecx, esi
sete dl
test cl, dl
je 0x412707
cmp dword [esp + 0x2c], edi
je 0x41271b
cmp al, 6
je 0x412945
cmp al, 7
je 0x412725
cmp al, 5
je 0x412ae0
mov ebx, 1
jmp 0x41268a
movzx eax, byte [esp + 0x2b]
mov ecx, dword [esp + 0x2c]
mov edx, ebp
call sym._jvp_object_length.isra.24
test ebx, ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], 0
jle 0x412b15
xor eax, eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov ebp, eax
jmp 0x412876
add dword [edx], 1
mov eax, dword [esp + 0xa0]
mov edx, dword [esi + 0x24]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xbc], edx
movzx edx, byte [esi + 0x18]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xa8]
mov ecx, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xac]
and ecx, 0xf
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xb4], eax
mov eax, dword [esi + 0x20]
lea esi, [ecx - 5]
mov ebx, esi
cmp bl, 2
mov dword [esp + 0xb8], eax
ja 0x412930
add dword [eax], 1
mov ebx, dword [esp + 0xc0]
mov byte [esp + 0xb0], dl
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x1c], ebx
call dbg.jv_equal
test eax, eax
je 0x412688
add dword [esp + 0x38], 1
add ebp, 1
cmp dword [esp + 0x30], ebp
je 0x412b15
movzx eax, byte [esp + 0x2a]
mov edx, dword [esp + 0x30]
mov ecx, edi
mov dword [esp], ebp
call sym._jvp_object_get_slot.isra.17
mov esi, eax
movzx eax, byte [eax + 8]
mov edx, eax
and edx, 0xf
cmp dl, 1
je 0x412869
mov edx, dword [esi + 0x10]
mov byte [esp], al
movzx eax, byte [esp + 0x2b]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x34]
call sym._jvp_object_read.isra.22
test eax, eax
je 0x412688
mov edx, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xa0], edx
mov edx, dword [eax + 4]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa4], edx
mov edx, dword [eax + 8]
movzx eax, byte [eax]
mov dword [esp + 0xa8], edx
and eax, 0xf
lea ecx, [eax - 5]
cmp cl, 2
jbe 0x412760
test edx, edx
je 0x412763
test al, al
je 0x412760
jmp 0x412763
fld qword [esp + 0x58]
xor ebx, ebx
mov eax, 0
fld qword [esp + 0x48]
fucompi st(1)
fstp st(0)
setnp bl
cmovne ebx, eax
jmp 0x41268a
test cl, cl
jne 0x4127dd
test eax, eax
jne 0x4127da
jmp 0x4127dd
cmp ebx, ebp
jne 0x412688
movzx eax, word [esp + 0x52]
cmp dword [esp + 0x2c], edi
mov word [esp + 0x30], ax
movzx eax, word [esp + 0x42]
mov word [esp + 0x34], ax
je 0x412b27
test ebx, ebx
jle 0x41271b
xor esi, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebp
jmp 0x412a7c
add dword [edx], 1
mov eax, dword [esp + 0x60]
movzx edx, word [esp + 0x30]
mov ecx, ebx
mov dword [esp + 4], esi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
movzx eax, byte [esp + 0x2a]
call sym._jvp_array_read.isra.5
mov edx, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], edx
mov edx, dword [eax + 8]
movzx eax, byte [eax]
mov dword [esp + 0x78], edx
and eax, 0xf
lea ecx, [eax - 5]
cmp cl, 2
ja 0x412b00
add dword [edx], 1
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp], ebp
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x1c], edi
call dbg.jv_equal
test eax, eax
je 0x412688
add esi, 1
cmp ebx, esi
je 0x41271b
mov eax, dword [esp + 0x2c]
movzx edx, word [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], eax
movzx eax, byte [esp + 0x2b]
call sym._jvp_array_read.isra.5
mov edx, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x64], edx
mov edx, dword [eax + 8]
movzx eax, byte [eax]
mov dword [esp + 0x68], edx
and eax, 0xf
lea ecx, [eax - 5]
cmp cl, 2
jbe 0x412982
test al, al
jne 0x412985
test edx, edx
jne 0x412982
jmp 0x412985
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x2b]
mov edx, edi
mov dword [esp], eax
movzx eax, byte [esp + 0x2a]
call sym._jvp_string_equal.isra.20
mov ebx, eax
jmp 0x41268a
test al, al
jne 0x4129fd
test edx, edx
jne 0x4129fa
jmp 0x4129fd
xor ebx, ebx
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x3c], edi
sete bl
jmp 0x41268a
movzx ecx, word [esp + 0x34]
cmp word [esp + 0x30], cx
jne 0x41296b
jmp 0x41271b