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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1dc
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x208]
mov edx, dword [esp + 0x1f4]
mov esi, dword [esp + 0x1fc]
mov ebp, dword [esp + 0x20c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x200]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x210]
mov edi, edx
mov dword [esp + 0x80], edx
mov byte [esp + 0x47], dl
mov edx, 0x10
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x88], esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], eax
mov byte [esp + 0x45], al
mov eax, dword [esp + 0x1f0]
call dbg.jvp_array_new
mov eax, dword [esp + 0x80]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x15c], eax
mov eax, edi
and eax, 0xf
movzx edi, al
sub eax, 5
cmp al, 2
mov dword [esp + 0x50], edi
mov byte [esp + 0x5c], al
ja 0x4133c9
add dword [esi], 1
mov ebx, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call dbg.jv_array_length
test eax, eax
mov dword [esp + 0x58], eax
jle 0x4132cc
movzx eax, byte [esp + 0x45]
mov dword [esp + 0x3c], 0
and eax, 0xf
movzx edi, al
sub eax, 5
mov dword [esp + 0x4c], edi
mov byte [esp + 0x46], al
mov edi, esi
movzx eax, byte [esp + 0x47]
cmp byte [esp + 0x5c], 2
mov dword [esp + 0x88], edi
mov dword [esp + 0x1c8], edi
mov byte [esp + 0x80], al
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1cc], eax
ja 0x413395
add dword [edi], 1
mov eax, dword [esp + 0x1cc]
mov ebx, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], edx
mov dword [esp], eax
mov dword [esp + 0x14], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call dbg.jv_array_get
movzx eax, byte [esp + 0x90]
cmp byte [esp + 0x46], 2
mov dword [esp + 0x168], ebp
mov byte [esp + 0x5d], al
mov eax, dword [esp + 0x98]
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0x45]
mov byte [esp + 0x70], al
mov eax, dword [esp + 0x70]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x16c], eax
ja 0x4133b0
add dword [ebp], 1
mov ebx, dword [esp + 0x160]
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call dbg.jv_array_length
test eax, eax
mov dword [esp + 0x40], eax
jle 0x4132b7
movzx eax, byte [esp + 0x5d]
xor ebx, ebx
mov dword [esp + 0x48], 0xffffffff
and eax, 0xf
mov byte [esp + 0x5f], al
sub eax, 5
mov byte [esp + 0x5e], al
jmp 0x412fc7
mov ecx, dword [esp + 0xa0]
and eax, 0xf
mov dword [esp + 0x1a8], edx
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x1ac], ecx
lea ecx, [eax - 5]
cmp cl, 2
ja 0x413380
add dword [edx], 1
mov eax, dword [esp + 0x1a0]
cmp byte [esp + 0x5c], 2
mov dword [esp + 0x88], edi
mov dword [esp + 0x198], edi
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x3c]
lea edx, [ebx + eax]
movzx eax, byte [esp + 0x47]
mov byte [esp + 0x80], al
mov eax, dword [esp + 0x80]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x19c], eax
ja 0x413360
add dword [edi], 1
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x14], edx
mov dword [esp + 0x100], esi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x198]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x104], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x19c]
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x10], esi
mov dword [esp], eax
call dbg.jv_array_get
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xc], eax
call dbg.jv_equal
test eax, eax
jne 0x412fba
mov dword [esp + 0x48], 0xffffffff
add ebx, 1
cmp dword [esp + 0x40], ebx
je 0x413200
movzx eax, byte [esp + 0x45]
cmp byte [esp + 0x46], 2
mov dword [esp + 0x78], ebp
mov dword [esp + 0x1b8], ebp
mov byte [esp + 0x70], al
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1bc], eax
ja 0x413340
add dword [ebp], 1
mov eax, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x128], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x120], esi
mov dword [esp], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call dbg.jv_array_get
test ebx, ebx
movzx eax, byte [esp + 0xa0]
mov edx, dword [esp + 0xa8]
jne 0x412e15
mov ecx, dword [esp + 0xa0]
and eax, 0xf
mov dword [esp + 0x188], edx
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x18c], ecx
lea ecx, [eax - 5]
cmp cl, 2
ja 0x4133de
add dword [edx], 1
mov eax, dword [esp + 0x180]
cmp byte [esp + 0x5e], 2
mov edx, dword [esp + 0x54]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x98], edx
mov dword [esp + 0x178], edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xdc], eax
movzx eax, byte [esp + 0x5d]
mov byte [esp + 0x90], al
mov eax, dword [esp + 0x90]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x17c], eax
ja 0x4133f3
mov eax, dword [esp + 0x54]
add dword [eax], 1
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x17c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xec], esi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 8], eax
call dbg.jv_equal
test eax, eax
je 0x412fb2
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
cmove eax, dword [esp + 0x3c]
add ebx, 1
cmp dword [esp + 0x40], ebx
mov dword [esp + 0x48], eax
jne 0x412fc7
lea esi, [esi]
lea edi, [edi]
cmp dword [esp + 0x48], 0xffffffff
je 0x4132b7
fild dword [esp + 0x48]
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x130], 4
fstp qword [esp + 0x138]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x134], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
call dbg.jv_array_append
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x1f0]
mov dword [ebx], eax
mov eax, dword [esp + 0x64]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0xc], eax
add dword [esp + 0x3c], 1
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x58], eax
jne 0x412c93
mov esi, edi
movzx eax, byte [esp + 0x47]
mov dword [esp + 8], esi
mov byte [esp + 0x80], al
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
call dbg.jv_free
movzx eax, byte [esp + 0x45]
mov dword [esp + 8], ebp
mov byte [esp + 0x70], al
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov eax, dword [esp + 0x1f0]
add esp, 0x1dc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x4c]
test edx, edx
jne 0x41300b
test ebp, ebp
jne 0x413007
jmp 0x41300b
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x412ee9
test edi, edi
jne 0x412ee6
jmp 0x412ee9
test edx, edx
je 0x412e58
test al, al
je 0x412e55
jmp 0x412e58
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x412ce5
test edi, edi
jne 0x412ce2
jmp 0x412ce5
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x412d9b
test ebp, ebp
jne 0x412d97
jmp 0x412d9b
test edi, edi
jne 0x412c1b
test esi, esi
jne 0x412c18
jmp 0x412c1b
test edx, edx
je 0x4130c0
test al, al
je 0x4130bd
jmp 0x4130c0
cmp byte [esp + 0x5f], 0
jne 0x413152
test edx, edx
jne 0x41314b
jmp 0x413152