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

Disassembly:
push edi
push esi
push ebp
push ebx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
sub esp, 0x80
mov eax, 0xfffffff8
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x68], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
lea esi, [esi]
mov eax, dword [esp + 0x3c]
movsx esi, word [ecx]
movsx edi, word [eax]
mov ebp, dword [esp + 0x40]
lea ebx, [eax + 0x10]
mov dword [esp + 0x3c], ebx
lea ebx, [ebp + 0x10]
mov dword [esp + 0x40], ebx
imul ebx, edi, 0x167
imul edi, edi, 0xb7
add ebx, 0xffff4d0b
mov dword [esp + 0x70], edi
mov edi, ebx
sar edi, 8
mov ebx, edi
add ebx, esi
mov dword [esp], edi
mov dword [esp + 0x74], edi
movsx edi, word [ebp]
mov dword [esp + 0x78], esi
imul esi, edi, 0x58
imul edi, edi, 0x1c6
add edi, 0xffff1daf
sar edi, 8
mov dword [esp + 0x20], edi
movsx edi, word [eax + 2]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x70]
lea esi, [esi + ecx - 0x87f6]
imul ecx, edi, 0x167
sar esi, 8
add ecx, 0xffff4d0b
mov dword [esp + 0x10], esi
sar ecx, 8
imul edi, edi, 0xb7
mov dword [esp + 4], ecx
movsx ecx, word [ebp + 2]
imul esi, ecx, 0x58
imul ecx, ecx, 0x1c6
add ecx, 0xffff1daf
sar ecx, 8
mov dword [esp + 0x24], ecx
lea esi, [esi + edi - 0x87f6]
movsx ecx, word [eax + 4]
sar esi, 8
mov dword [esp + 0x14], esi
movsx esi, word [ebp + 4]
imul edi, ecx, 0x167
imul ecx, ecx, 0xb7
add edi, 0xffff4d0b
sar edi, 8
mov dword [esp + 8], edi
imul edi, esi, 0x58
imul esi, esi, 0x1c6
add esi, 0xffff1daf
sar esi, 8
mov dword [esp + 0x28], esi
lea edi, [edi + ecx - 0x87f6]
movsx eax, word [eax + 6]
sar edi, 8
movsx ebp, word [ebp + 6]
mov dword [esp + 0x18], edi
imul ecx, eax, 0x167
imul esi, ebp, 0x58
add ecx, 0xffff4d0b
imul eax, eax, 0xb7
sar ecx, 8
imul ebp, ebp, 0x1c6
mov dword [esp + 0xc], ecx
mov dword [esp + 0x44], ecx
lea esi, [esi + eax - 0x87f6]
add ebp, 0xffff1daf
sar esi, 8
sar ebp, 8
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ebp
cmp ebx, 0xff
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
jle 0x6000fa10
mov ebx, 0xff
jmp 0x6000fa18
test ebx, ebx
jl 0x60010710
movzx ebx, bl
mov eax, dword [esp + 0x10]
mov ebp, esi
sub ebp, eax
mov dword [esp + 0x64], eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx], bl
jle 0x6000fa40
mov ebp, 0xff
jmp 0x6000fa48
test ebp, ebp
jl 0x60010700
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x60], ebx
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 1], al
jle 0x6000fa70
mov ebx, 0xff
jmp 0x6000fa78
test ebx, ebx
jl 0x600106f0
movzx ebx, bl
mov eax, dword [esp + 0x68]
neg bl
add bl, 0xff
mov byte [edx + 2], bl
mov al, byte [eax]
mov byte [edx + 3], al
movsx esi, word [ecx + 2]
lea ebp, [edi + esi]
cmp ebp, 0xff
jle 0x6000fab0
mov ebp, 0xff
jmp 0x6000fab8
test ebp, ebp
jl 0x600106e0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x64]
mov ebp, ebx
mov ebx, esi
sub ebx, ebp
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 4], al
jle 0x6000fae0
mov ebx, 0xff
jmp 0x6000fae8
test ebx, ebx
jl 0x600106d0
movzx ebx, bl
mov ebp, dword [esp + 0x60]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 5], bl
jle 0x6000fb10
mov ebp, 0xff
jmp 0x6000fb18
test ebp, ebp
jl 0x600106c0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 4]
mov dword [esp + 0x5c], ebp
neg al
add al, 0xff
mov byte [edx + 6], al
mov bl, byte [ebx + 2]
mov byte [edx + 7], bl
movsx esi, word [ecx + 4]
lea ebx, [esi + ebp]
cmp ebx, 0xff
jle 0x6000fb50
mov ebx, 0xff
jmp 0x6000fb58
test ebx, ebx
jl 0x600106b0
movzx ebx, bl
mov eax, dword [esp + 0x14]
mov ebp, esi
sub ebp, eax
mov dword [esp + 0x58], eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 8], bl
jle 0x6000fb80
mov ebp, 0xff
jmp 0x6000fb88
test ebp, ebp
jl 0x600106a0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x54], ebx
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 9], al
jle 0x6000fbb0
mov ebx, 0xff
jmp 0x6000fbb8
test ebx, ebx
jl 0x60010690
movzx ebx, bl
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x5c]
neg bl
add bl, 0xff
mov byte [edx + 0xa], bl
mov al, byte [eax + 4]
mov byte [edx + 0xb], al
movsx esi, word [ecx + 6]
add ebp, esi
cmp ebp, 0xff
jle 0x6000fbf0
mov ebp, 0xff
jmp 0x6000fbf8
test ebp, ebp
jl 0x60010680
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x58]
mov ebp, ebx
mov ebx, esi
sub ebx, ebp
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0xc], al
jle 0x6000fc20
mov ebx, 0xff
jmp 0x6000fc28
test ebx, ebx
jl 0x60010670
movzx ebx, bl
mov ebp, dword [esp + 0x54]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0xd], bl
jle 0x6000fc50
mov ebp, 0xff
jmp 0x6000fc58
test ebp, ebp
jl 0x60010660
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 8]
mov dword [esp + 0x50], ebp
neg al
add al, 0xff
mov byte [edx + 0xe], al
mov bl, byte [ebx + 6]
mov byte [edx + 0xf], bl
movsx esi, word [ecx + 8]
lea ebx, [esi + ebp]
cmp ebx, 0xff
jle 0x6000fc90
mov ebx, 0xff
jmp 0x6000fc98
test ebx, ebx
jl 0x60010650
movzx ebx, bl
mov eax, dword [esp + 0x18]
mov ebp, esi
sub ebp, eax
mov dword [esp + 0x4c], eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x10], bl
jle 0x6000fcc0
mov ebp, 0xff
jmp 0x6000fcc8
test ebp, ebp
jl 0x60010640
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x11], al
jle 0x6000fcf0
mov ebx, 0xff
jmp 0x6000fcf8
test ebx, ebx
jl 0x60010630
movzx ebx, bl
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x50]
neg bl
add bl, 0xff
mov byte [edx + 0x12], bl
mov al, byte [eax + 8]
mov byte [edx + 0x13], al
movsx esi, word [ecx + 0xa]
add ebp, esi
cmp ebp, 0xff
jle 0x6000fd30
mov ebp, 0xff
jmp 0x6000fd38
test ebp, ebp
jl 0x60010620
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x4c]
mov ebp, ebx
mov ebx, esi
sub ebx, ebp
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x14], al
jle 0x6000fd60
mov ebx, 0xff
jmp 0x6000fd68
test ebx, ebx
jl 0x60010610
movzx ebx, bl
mov ebp, dword [esp + 0x48]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x15], bl
jle 0x6000fd90
mov ebp, 0xff
jmp 0x6000fd98
test ebp, ebp
jl 0x60010600
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x44]
neg al
add al, 0xff
mov byte [edx + 0x16], al
mov bl, byte [ebx + 0xa]
mov byte [edx + 0x17], bl
movsx esi, word [ecx + 0xc]
lea ebx, [esi + ebp]
cmp ebx, 0xff
jle 0x6000fdd0
mov ebx, 0xff
jmp 0x6000fdd8
test ebx, ebx
jl 0x600105f0
movzx ebx, bl
mov eax, dword [esp + 0x38]
mov ebp, esi
sub ebp, eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x18], bl
jle 0x6000fe00
mov ebp, 0xff
jmp 0x6000fe08
test ebp, ebp
jl 0x600105e0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x34]
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x19], al
jle 0x6000fe30
mov ebx, 0xff
jmp 0x6000fe38
test ebx, ebx
jl 0x600105d0
movzx ebx, bl
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x44]
neg bl
add bl, 0xff
mov byte [edx + 0x1a], bl
mov al, byte [eax + 0xc]
mov byte [edx + 0x1b], al
movsx esi, word [ecx + 0xe]
add ebp, esi
cmp ebp, 0xff
jle 0x6000fe70
mov ebp, 0xff
jmp 0x6000fe78
test ebp, ebp
jl 0x600105c0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x38]
mov ebp, ebx
mov ebx, esi
sub ebx, ebp
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x1c], al
jle 0x6000fea0
mov ebx, 0xff
jmp 0x6000fea8
test ebx, ebx
jl 0x600105b0
movzx ebx, bl
mov ebp, dword [esp + 0x34]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x1d], bl
jle 0x6000fed0
mov ebp, 0xff
jmp 0x6000fed8
test ebp, ebp
jl 0x600105a0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0xa8]
lea esi, [ecx + 0x10]
mov dword [esp + 0x6c], esi
mov esi, ecx
lea ecx, [ebx + 0x10]
add ebp, edx
neg al
add al, 0xff
mov byte [edx + 0x1e], al
mov bl, byte [ebx + 0xe]
mov byte [edx + 0x1f], bl
movsx esi, word [esi + 0x10]
lea ebx, [edi + esi]
cmp ebx, 0xff
mov edx, ebp
jle 0x6000ff20
mov ebx, 0xff
jmp 0x6000ff28
test ebx, ebx
jl 0x60010590
movzx ebx, bl
mov eax, dword [esp + 0x64]
mov ebp, esi
sub ebp, eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx], bl
jle 0x6000ff50
mov ebp, 0xff
jmp 0x6000ff58
test ebp, ebp
jl 0x60010580
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x60]
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 1], al
jle 0x6000ff80
mov ebx, 0xff
jmp 0x6000ff88
test ebx, ebx
jl 0x60010570
movzx ebx, bl
mov eax, dword [esp + 0x6c]
neg bl
add bl, 0xff
mov byte [edx + 2], bl
mov bl, byte [ecx]
mov byte [edx + 3], bl
movsx esi, word [eax + 2]
lea ebp, [edi + esi]
cmp ebp, 0xff
jle 0x6000ffc0
mov ebp, 0xff
jmp 0x6000ffc8
test ebp, ebp
jl 0x60010560
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x64]
mov ebx, esi
sub ebx, edi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 4], al
jle 0x6000fff0
mov ebx, 0xff
jmp 0x6000fff8
test ebx, ebx
jl 0x60010550
movzx ebx, bl
mov ebp, dword [esp + 0x60]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 5], bl
jle 0x60010020
mov ebp, 0xff
jmp 0x60010028
test ebp, ebp
jl 0x60010540
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x5c]
neg al
add al, 0xff
mov byte [edx + 6], al
mov al, byte [ecx + 2]
mov byte [edx + 7], al
movsx esi, word [edi + 4]
add ebx, esi
cmp ebx, 0xff
jle 0x60010060
mov ebx, 0xff
jmp 0x60010068
test ebx, ebx
jl 0x60010530
movzx ebx, bl
mov eax, dword [esp + 0x58]
mov ebp, esi
sub ebp, eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 8], bl
jle 0x60010090
mov ebp, 0xff
jmp 0x60010098
test ebp, ebp
jl 0x60010520
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x54]
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 9], al
jle 0x600100c0
mov ebx, 0xff
jmp 0x600100c8
test ebx, ebx
jl 0x60010510
movzx ebx, bl
mov eax, edi
mov ebp, dword [esp + 0x5c]
neg bl
add bl, 0xff
mov byte [edx + 0xa], bl
mov bl, byte [ecx + 4]
mov byte [edx + 0xb], bl
movsx esi, word [eax + 6]
add ebp, esi
cmp ebp, 0xff
jle 0x60010100
mov ebp, 0xff
jmp 0x60010108
test ebp, ebp
jl 0x60010500
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x58]
mov ebx, esi
sub ebx, edi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0xc], al
jle 0x60010130
mov ebx, 0xff
jmp 0x60010138
test ebx, ebx
jl 0x600104f0
movzx ebx, bl
mov ebp, dword [esp + 0x54]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0xd], bl
jle 0x60010160
mov ebp, 0xff
jmp 0x60010168
test ebp, ebp
jl 0x600104e0
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
neg al
add al, 0xff
mov byte [edx + 0xe], al
mov al, byte [ecx + 6]
mov byte [edx + 0xf], al
movsx esi, word [edi + 8]
add ebx, esi
cmp ebx, 0xff
jle 0x600101a0
mov ebx, 0xff
jmp 0x600101a8
test ebx, ebx
jl 0x600104d0
movzx ebx, bl
mov eax, dword [esp + 0x4c]
mov ebp, esi
sub ebp, eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x10], bl
jle 0x600101d0
mov ebp, 0xff
jmp 0x600101d8
test ebp, ebp
jl 0x600104c0
mov eax, ebp
movzx eax, al
mov ebx, dword [esp + 0x48]
add ebx, esi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x11], al
jle 0x60010200
mov ebx, 0xff
jmp 0x60010208
test ebx, ebx
jl 0x600104b0
movzx ebx, bl
mov eax, edi
mov ebp, dword [esp + 0x50]
neg bl
add bl, 0xff
mov byte [edx + 0x12], bl
mov bl, byte [ecx + 8]
mov byte [edx + 0x13], bl
movsx esi, word [eax + 0xa]
add ebp, esi
cmp ebp, 0xff
jle 0x60010240
mov ebp, 0xff
jmp 0x60010248
test ebp, ebp
jl 0x600104a0
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x4c]
mov ebx, esi
sub ebx, edi
neg al
add al, 0xff
cmp ebx, 0xff
mov byte [edx + 0x14], al
jle 0x60010270
mov ebx, 0xff
jmp 0x60010278
test ebx, ebx
jl 0x60010490
movzx ebx, bl
mov ebp, dword [esp + 0x48]
add ebp, esi
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x15], bl
jle 0x600102a0
mov ebp, 0xff
jmp 0x600102a8
test ebp, ebp
jl 0x60010480
mov eax, ebp
movzx eax, al
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x44]
neg al
add al, 0xff
mov byte [edx + 0x16], al
mov al, byte [ecx + 0xa]
mov byte [edx + 0x17], al
movsx esi, word [edi + 0xc]
add ebx, esi
cmp ebx, 0xff
jle 0x600102e0
mov ebx, 0xff
jmp 0x600102e8
test ebx, ebx
jl 0x60010470
movzx ebx, bl
mov eax, dword [esp + 0x38]
mov ebp, esi
sub ebp, eax
neg bl
add bl, 0xff
cmp ebp, 0xff
mov byte [edx + 0x18], bl
jle 0x60010310
xor ebx, ebx
jmp 0x600102e8
xor ebp, ebp
jmp 0x600102a8
xor ebx, ebx
jmp 0x60010278
xor ebp, ebp
jmp 0x60010248
xor ebx, ebx
jmp 0x60010208
xor ebp, ebp
jmp 0x600101d8
xor ebx, ebx
jmp 0x600101a8
xor ebp, ebp
jmp 0x60010168
xor ebx, ebx
jmp 0x60010138
xor ebp, ebp
jmp 0x60010108
xor ebx, ebx
jmp 0x600100c8
xor ebp, ebp
jmp 0x60010098
xor ebx, ebx
jmp 0x60010068
xor ebp, ebp
jmp 0x60010028
xor ebx, ebx
jmp 0x6000fff8
xor ebp, ebp
jmp 0x6000ffc8
xor ebx, ebx
jmp 0x6000ff88
xor ebp, ebp
jmp 0x6000ff58
xor ebx, ebx
jmp 0x6000ff28
xor ebp, ebp
jmp 0x6000fed8
xor ebx, ebx
jmp 0x6000fea8
xor ebp, ebp
jmp 0x6000fe78
xor ebx, ebx
jmp 0x6000fe38
xor ebp, ebp
jmp 0x6000fe08
xor ebx, ebx
jmp 0x6000fdd8
xor ebp, ebp
jmp 0x6000fd98
xor ebx, ebx
jmp 0x6000fd68
xor ebp, ebp
jmp 0x6000fd38
xor ebx, ebx
jmp 0x6000fcf8
xor ebp, ebp
jmp 0x6000fcc8
xor ebx, ebx
jmp 0x6000fc98
xor ebp, ebp
jmp 0x6000fc58
xor ebx, ebx
jmp 0x6000fc28
xor ebp, ebp
jmp 0x6000fbf8
xor ebx, ebx
jmp 0x6000fbb8
xor ebp, ebp
jmp 0x6000fb88
xor ebx, ebx
jmp 0x6000fb58
xor ebp, ebp
jmp 0x6000fb18
xor ebx, ebx
jmp 0x6000fae8
xor ebp, ebp
jmp 0x6000fab8
xor ebx, ebx
jmp 0x6000fa78
xor ebp, ebp
jmp 0x6000fa48
xor ebx, ebx
jmp 0x6000fa18