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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 0xc]
mov edx, 1
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [ecx]
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov esi, edi
mov dword [ebp - 4], eax
shr eax, 0x10
imul ecx, eax
shr esi, 0x10
test ecx, ecx
je 0x10156b4e
mov eax, ecx
movzx ebx, cx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156b55
mov ecx, dword [ebp + 0xc]
mov ebx, edx
sub ebx, dword [ecx]
mov ecx, dword [ebp + 0xc]
sub ebx, eax
mov eax, dword [ebp - 4]
and edi, 0xffff
mov dword [ebp - 8], ebx
add eax, dword [ecx + 4]
add esi, dword [ecx + 8]
mov dword [ebp - 4], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp + 0xc], esi
mov esi, eax
imul esi, edi
test esi, esi
je 0x10156b91
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
sub esi, eax
jmp 0x10156b97
mov esi, edx
sub esi, eax
sub esi, edi
mov eax, dword [ebp + 0xc]
mov edi, dword [ecx + 0x10]
xor eax, ebx
and eax, 0xffff
imul edi, eax
test edi, edi
je 0x10156bbc
mov eax, edi
movzx ebx, di
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156bc1
mov ebx, edx
sub ebx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
sub ebx, eax
mov eax, esi
xor eax, dword [ebp - 4]
add eax, ebx
and eax, 0xffff
imul edi, eax
test edi, edi
je 0x10156bea
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x10156bef
mov edi, edx
sub edi, dword [ecx + 0x14]
sub edi, eax
add ebx, edi
mov eax, edi
xor eax, dword [ebp + 0xc]
xor esi, ebx
xor ebx, dword [ebp - 4]
xor edi, dword [ebp - 8]
mov dword [ebp - 4], eax
and edi, 0xffff
mov eax, dword [ecx + 0x18]
imul eax, edi
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10156c2d
mov edi, dword [ebp + 0xc]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
shr eax, 0x10
sub edi, eax
mov dword [ebp - 8], edi
jmp 0x10156c37
mov eax, edx
sub eax, dword [ecx + 0x18]
sub eax, edi
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
and esi, 0xffff
add eax, dword [ecx + 0x1c]
add ebx, dword [ecx + 0x20]
mov dword [ebp - 4], eax
mov eax, dword [ecx + 0x24]
mov edi, eax
imul edi, esi
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x10156c6b
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
sub edi, eax
jmp 0x10156c71
mov edi, edx
sub edi, eax
sub edi, esi
mov eax, ebx
mov ebx, dword [ecx + 0x28]
xor eax, dword [ebp - 8]
mov esi, ebx
and eax, 0xffff
imul esi, eax
test esi, esi
je 0x10156c98
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x10156c9c
mov esi, edx
sub esi, ebx
mov ebx, dword [ecx + 0x2c]
sub esi, eax
mov eax, edi
xor eax, dword [ebp - 4]
add eax, esi
and eax, 0xffff
imul ebx, eax
mov dword [ebp - 0x10], eax
mov eax, ebx
mov dword [ebp + 0xc], ebx
mov ebx, dword [ebp - 0xc]
test eax, eax
je 0x10156cdd
mov ebx, dword [ebp + 0xc]
shr eax, 0x10
movzx ebx, bx
sub ebx, eax
mov eax, ebx
mov dword [ebp + 0xc], ebx
mov ebx, dword [ebp - 0xc]
shr eax, 0x10
sub dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
jmp 0x10156ce5
mov eax, edx
sub eax, dword [ecx + 0x2c]
sub eax, dword [ebp - 0x10]
add esi, eax
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], ebx
xor edi, esi
xor eax, dword [ebp - 8]
mov ebx, dword [ecx + 0x30]
and eax, 0xffff
xor esi, dword [ebp - 4]
imul ebx, eax
test ebx, ebx
je 0x10156d15
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156d1a
mov ebx, edx
sub ebx, dword [ecx + 0x30]
add esi, dword [ecx + 0x38]
sub ebx, eax
mov eax, dword [ebp + 0xc]
and edi, 0xffff
add eax, dword [ecx + 0x34]
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 8], esi
mov esi, eax
imul esi, edi
mov dword [ebp - 0x10], ebx
test esi, esi
je 0x10156d53
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
sub esi, eax
jmp 0x10156d59
mov esi, edx
sub esi, eax
sub esi, edi
mov eax, dword [ebp - 8]
mov edi, dword [ecx + 0x40]
xor eax, ebx
and eax, 0xffff
mov ebx, edi
imul ebx, eax
test ebx, ebx
je 0x10156d80
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156d84
mov ebx, edx
sub ebx, edi
mov edi, dword [ecx + 0x44]
sub ebx, eax
mov eax, esi
xor eax, dword [ebp + 0xc]
add eax, ebx
and eax, 0xffff
imul edi, eax
mov dword [ebp - 4], eax
mov eax, edi
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 8]
test eax, eax
je 0x10156dc5
mov edi, dword [ebp - 0xc]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10156dcd
mov eax, edx
sub eax, dword [ecx + 0x44]
sub eax, dword [ebp - 4]
add ebx, eax
xor esi, ebx
xor ebx, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], edi
xor eax, dword [ebp - 0x10]
mov edi, dword [ecx + 0x48]
and eax, 0xffff
imul edi, eax
test edi, edi
je 0x10156dfd
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x10156e02
mov edi, edx
sub edi, dword [ecx + 0x48]
add ebx, dword [ecx + 0x50]
sub edi, eax
mov eax, dword [ebp + 0xc]
and esi, 0xffff
add eax, dword [ecx + 0x4c]
mov dword [ebp - 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0x54]
mov edi, eax
imul edi, esi
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x10156e3b
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
sub edi, eax
jmp 0x10156e41
mov edi, edx
sub edi, eax
sub edi, esi
mov eax, ebx
mov ebx, dword [ecx + 0x58]
xor eax, dword [ebp - 8]
mov esi, ebx
and eax, 0xffff
imul esi, eax
test esi, esi
je 0x10156e68
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x10156e6c
mov esi, edx
sub esi, ebx
mov ebx, dword [ecx + 0x5c]
sub esi, eax
mov eax, edi
xor eax, dword [ebp + 0xc]
add eax, esi
and eax, 0xffff
imul ebx, eax
mov dword [ebp - 4], eax
mov eax, ebx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0xc]
test eax, eax
je 0x10156ead
mov ebx, dword [ebp - 0x10]
shr eax, 0x10
movzx ebx, bx
sub ebx, eax
mov eax, ebx
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0xc]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10156eb5
mov eax, edx
sub eax, dword [ecx + 0x5c]
sub eax, dword [ebp - 4]
add esi, eax
xor edi, esi
xor esi, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], ebx
xor eax, dword [ebp - 8]
mov ebx, dword [ecx + 0x60]
and eax, 0xffff
imul ebx, eax
test ebx, ebx
je 0x10156ee5
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156eea
mov ebx, edx
sub ebx, dword [ecx + 0x60]
add esi, dword [ecx + 0x68]
sub ebx, eax
mov eax, dword [ebp + 0xc]
and edi, 0xffff
add eax, dword [ecx + 0x64]
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0x6c]
mov dword [ebp - 8], esi
mov esi, eax
imul esi, edi
mov dword [ebp - 0xc], ebx
test esi, esi
je 0x10156f23
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
sub esi, eax
jmp 0x10156f29
mov esi, edx
sub esi, eax
sub esi, edi
mov eax, dword [ebp - 8]
mov edi, dword [ecx + 0x70]
xor eax, ebx
and eax, 0xffff
mov ebx, edi
imul ebx, eax
test ebx, ebx
je 0x10156f50
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10156f54
mov ebx, edx
sub ebx, edi
mov edi, dword [ecx + 0x74]
sub ebx, eax
mov eax, esi
xor eax, dword [ebp + 0xc]
add eax, ebx
and eax, 0xffff
imul edi, eax
mov dword [ebp - 4], eax
mov eax, edi
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
test eax, eax
je 0x10156f95
mov edi, dword [ebp - 0x10]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10156f9d
mov eax, edx
sub eax, dword [ecx + 0x74]
sub eax, dword [ebp - 4]
add ebx, eax
xor esi, ebx
xor ebx, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], edi
xor eax, dword [ebp - 0xc]
mov edi, dword [ecx + 0x78]
and eax, 0xffff
imul edi, eax
test edi, edi
je 0x10156fcd
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x10156fd2
mov edi, edx
sub edi, dword [ecx + 0x78]
add ebx, dword [ecx + 0x80]
sub edi, eax
mov eax, dword [ebp + 0xc]
and esi, 0xffff
add eax, dword [ecx + 0x7c]
mov dword [ebp - 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0x84]
mov edi, eax
imul edi, esi
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x10157011
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
sub edi, eax
jmp 0x10157017
mov edi, edx
sub edi, eax
sub edi, esi
mov eax, ebx
mov ebx, dword [ecx + 0x88]
xor eax, dword [ebp - 8]
mov esi, ebx
and eax, 0xffff
imul esi, eax
test esi, esi
je 0x10157041
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x10157045
mov esi, edx
sub esi, ebx
mov ebx, dword [ecx + 0x8c]
sub esi, eax
mov eax, edi
xor eax, dword [ebp + 0xc]
add eax, esi
and eax, 0xffff
imul ebx, eax
mov dword [ebp - 4], eax
mov eax, ebx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0xc]
test eax, eax
je 0x10157089
mov ebx, dword [ebp - 0x10]
shr eax, 0x10
movzx ebx, bx
sub ebx, eax
mov eax, ebx
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0xc]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10157094
mov eax, edx
sub eax, dword [ecx + 0x8c]
sub eax, dword [ebp - 4]
add esi, eax
xor edi, esi
xor esi, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], ebx
xor eax, dword [ebp - 8]
mov ebx, dword [ecx + 0x90]
and eax, 0xffff
imul ebx, eax
test ebx, ebx
je 0x101570c7
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x101570cf
mov ebx, edx
sub ebx, dword [ecx + 0x90]
add esi, dword [ecx + 0x98]
sub ebx, eax
mov eax, dword [ebp + 0xc]
and edi, 0xffff
add eax, dword [ecx + 0x94]
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0x9c]
mov dword [ebp - 8], esi
mov esi, eax
imul esi, edi
mov dword [ebp - 0xc], ebx
test esi, esi
je 0x10157111
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
sub esi, eax
jmp 0x10157117
mov esi, edx
sub esi, eax
sub esi, edi
mov eax, dword [ebp - 8]
mov edi, dword [ecx + 0xa0]
xor eax, ebx
and eax, 0xffff
mov ebx, edi
imul ebx, eax
test ebx, ebx
je 0x10157141
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
sub ebx, eax
mov eax, ebx
shr eax, 0x10
jmp 0x10157145
mov ebx, edx
sub ebx, edi
mov edi, dword [ecx + 0xa4]
sub ebx, eax
mov eax, esi
xor eax, dword [ebp + 0xc]
add eax, ebx
and eax, 0xffff
imul edi, eax
mov dword [ebp - 4], eax
mov eax, edi
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
test eax, eax
je 0x10157189
mov edi, dword [ebp - 0x10]
shr eax, 0x10
movzx edi, di
sub edi, eax
mov eax, edi
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10157194
mov eax, edx
sub eax, dword [ecx + 0xa4]
sub eax, dword [ebp - 4]
add ebx, eax
xor esi, ebx
xor ebx, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
xor dword [ebp + 0xc], edi
xor eax, dword [ebp - 0xc]
mov edi, dword [ecx + 0xa8]
and eax, 0xffff
imul edi, eax
test edi, edi
je 0x101571c7
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
jmp 0x101571cf
mov edi, edx
sub edi, dword [ecx + 0xa8]
add ebx, dword [ecx + 0xb0]
sub edi, eax
mov eax, dword [ebp + 0xc]
and esi, 0xffff
add eax, dword [ecx + 0xac]
mov dword [ebp - 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [ecx + 0xb4]
mov edi, eax
imul edi, esi
mov dword [ebp - 0xc], ebx
test edi, edi
je 0x10157211
mov eax, edi
movzx edi, di
shr eax, 0x10
sub edi, eax
mov eax, edi
shr eax, 0x10
sub edi, eax
jmp 0x10157217
mov edi, edx
sub edi, eax
sub edi, esi
mov eax, ebx
mov ebx, dword [ecx + 0xb8]
xor eax, dword [ebp - 8]
mov esi, ebx
and eax, 0xffff
imul esi, eax
test esi, esi
je 0x10157241
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x10157245
mov esi, edx
sub esi, ebx
mov ebx, dword [ecx + 0xbc]
sub esi, eax
mov eax, edi
xor eax, dword [ebp + 0xc]
add eax, esi
and eax, 0xffff
imul ebx, eax
mov dword [ebp - 4], eax
mov eax, ebx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0xc]
test eax, eax
je 0x10157289
mov ebx, dword [ebp - 0x10]
shr eax, 0x10
movzx ebx, bx
sub ebx, eax
mov eax, ebx
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0xc]
shr eax, 0x10
sub dword [ebp - 4], eax
mov eax, dword [ebp - 4]
jmp 0x10157294
mov eax, edx
sub eax, dword [ecx + 0xbc]
sub eax, dword [ebp - 4]
add esi, eax
xor dword [ebp + 0xc], esi
xor edi, esi
mov esi, eax
xor eax, dword [ebp - 8]
xor esi, ebx
and eax, 0xffff
mov ebx, dword [ecx + 0xc0]
mov dword [ebp - 0x10], esi
mov esi, ebx
imul esi, eax
test esi, esi
je 0x101572ca
mov eax, esi
movzx esi, si
shr eax, 0x10
sub esi, eax
mov eax, esi
shr eax, 0x10
jmp 0x101572ce
mov esi, edx
sub esi, ebx
mov ebx, dword [ecx + 0xc8]
sub esi, eax
mov eax, dword [ecx + 0xc4]
and edi, 0xffff
add ebx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0xcc]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
imul ecx, edi
mov dword [ebp + 0xc], eax
test ecx, ecx
je 0x10157311
mov eax, ecx
movzx edx, cx
shr eax, 0x10
sub edx, eax
mov eax, edx
shr eax, 0x10
sub edx, eax
mov eax, dword [ebp + 0xc]
jmp 0x10157316
sub edx, dword [ebp - 0x10]
sub edx, edi
mov ecx, dword [ebp + 8]
shl esi, 0x10
movzx eax, ax
or eax, esi
shl ebx, 0x10
mov dword [ecx], eax
movzx eax, dx
pop edi
or ebx, eax
pop esi
mov dword [ecx + 4], ebx
pop ebx
mov esp, ebp
pop ebp
ret