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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x5c]
mov esi, dword [edi + 0x48]
mov ebx, dword [esi + 4]
mov dword [esp + 0x44], ebx
test eax, eax
je 0xf35982
cmp dword [esi + 0x34], 0
jne 0xf35982
mov dword [edi + 0x1c], 3
jmp 0xf35e23
movzx ecx, word [esp + 0x6c]
movzx edx, word [esp + 0x64]
movzx ecx, cx
movzx ebp, word [esp + 0x74]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
add ecx, edx
add ecx, ebp
xor edx, edx
add ecx, dword [esp + 0xac]
setb dl
add ecx, ebx
adc edx, 0
add ecx, 0x2e
adc edx, 0
cmp ecx, 0xffffffff
sbb edx, 0
jb 0xf359cb
mov dword [edi + 0x1c], 0xf
jmp 0xf35e23
mov dword [esp + 0x34], ebp
mov dword [esp], ebx
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0xa], 0
mov dword [esp + 0xe], 0
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov dword [esp + 6], 0x2014b50
mov ebx, dword [esp + 0x88]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0xac]
add ecx, edx
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov edx, 0
cmp word [esp + 0x8c], 0
je 0xf35a59
mov dl, 0x14
mov byte [esp + 0xc], dl
movzx edx, word [esp + 0x90]
mov byte [esp + 0xe], dl
mov byte [esp + 0xf], dh
movzx edx, word [esp + 0x8c]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dh
movzx edx, word [esp + 0x94]
mov byte [esp + 0x12], dl
mov byte [esp + 0x13], dh
movzx edx, word [esp + 0x98]
mov byte [esp + 0x14], dl
mov byte [esp + 0x15], dh
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x18], dl
shr ebx, 0x18
neg ebp
mov edx, 0
sbb edx, edx
mov byte [esp + 0x19], bl
or edx, dword [esp + 0x80]
mov byte [esp + 0x1a], dl
mov byte [esp + 0x1b], dh
mov ebx, edx
shr ebx, 0x10
mov byte [esp + 0x1c], bl
shr edx, 0x18
neg edi
mov ebx, 0
sbb ebx, ebx
mov byte [esp + 0x1d], dl
or ebx, dword [esp + 0x78]
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x20], dl
shr ebx, 0x18
mov byte [esp + 0x21], bl
movzx edx, word [esp + 0x64]
mov byte [esp + 0x22], dl
mov byte [esp + 0x23], dh
mov edx, dword [esp + 0x40]
mov byte [esp + 0x24], dl
mov byte [esp + 0x25], dh
movzx edx, word [esp + 0x74]
mov byte [esp + 0x26], dl
mov byte [esp + 0x27], dh
mov ebx, dword [esp + 0xa4]
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x2e], dl
shr ebx, 0x18
neg eax
sbb ecx, ecx
mov byte [esp + 0x2f], bl
or ecx, dword [esp + 0x9c]
mov byte [esp + 0x30], cl
mov byte [esp + 0x31], ch
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x32], al
shr ecx, 0x18
mov byte [esp + 0x33], cl
mov ebx, dword [esp]
mov eax, ebx
and eax, 0x2e
mov ecx, ebx
xor ecx, 0x2e
lea edi, [ecx + eax*2]
mov eax, dword [esi + 8]
cmp eax, edi
jae 0xf35bbd
cmp eax, 1
adc eax, 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add eax, eax
cmp ebx, edi
jb 0xf35b90
push ebx
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi], eax
mov dword [esi + 8], ebx
mov ebx, dword [esp]
jmp 0xf35bbf
mov eax, dword [esi]
mov dword [esi + 4], edi
mov ecx, dword [esi + 0xc]
imul edx, ecx, 0x2e
imul ecx, ebx
add ecx, eax
lea eax, [esp + 6]
push edx
push eax
push ecx
call fcn.00f37ff0
add esp, 0xc
mov ebx, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebx
mov edx, dword [esp + 0x3c]
and eax, edx
mov ecx, ebx
xor ecx, edx
lea ebp, [ecx + eax*2]
cmp edi, ebp
jae 0xf35c28
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebp
jb 0xf35c00
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebp
cmp word [esp + 0x64], 0
je 0xf35c56
mov eax, dword [esi + 0xc]
imul ebx, eax
add ebx, dword [esi]
mov ecx, dword [esp + 0x3c]
imul ecx, eax
push ecx
push dword [esp + 0x64]
push ebx
call fcn.00f37ff0
add esp, 0xc
mov ebp, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebp
mov edx, dword [esp + 0x38]
and eax, edx
mov ecx, ebp
xor ecx, edx
lea ebx, [ecx + eax*2]
cmp edi, ebx
jae 0xf35ca8
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebx
jb 0xf35c80
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebx
movzx eax, word [esp + 0x6c]
test ax, ax
je 0xf35cd8
mov eax, dword [esi + 0xc]
imul ebp, eax
add ebp, dword [esi]
mov ecx, dword [esp + 0x38]
imul ecx, eax
push ecx
push dword [esp + 0x6c]
push ebp
call fcn.00f37ff0
add esp, 0xc
mov ebx, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebx
mov edx, dword [esp + 0xac]
and eax, edx
mov ecx, ebx
xor ecx, edx
lea ebp, [ecx + eax*2]
cmp edi, ebp
jae 0xf35d28
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebp
jb 0xf35d00
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebp
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0xf35d58
mov eax, dword [esi + 0xc]
imul ebx, eax
add ebx, dword [esi]
imul ecx, eax
push ecx
push dword [esp + 0xac]
push ebx
call fcn.00f37ff0
add esp, 0xc
mov ebp, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebp
mov edx, dword [esp + 0x34]
and eax, edx
mov ecx, ebp
xor ecx, edx
lea ebx, [ecx + eax*2]
cmp edi, ebx
jae 0xf35d7f
push 1
push ebx
push esi
push dword [esp + 0x68]
call fcn.00f37e40
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi + 4], ebx
cmp word [esp + 0x74], 0
je 0xf35da7
mov eax, dword [esi + 0xc]
imul ebp, eax
add ebp, dword [esi]
mov ecx, dword [esp + 0x34]
imul ecx, eax
push ecx
push dword [esp + 0x74]
push ebp
call fcn.00f37ff0
add esp, 0xc
mov edi, dword [esi + 0x14]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ebx, [ecx + eax*2]
cmp dword [esi + 0x18], ebx
jae 0xf35dd3
lea eax, [esi + 0x10]
push 1
push ebx
push eax
push dword [esp + 0x68]
call fcn.00f37e40
add esp, 0x10
test eax, eax
je 0xf35df5
mov dword [esi + 0x14], ebx
mov eax, dword [esi + 0x1c]
imul edi, eax
add edi, dword [esi + 0x10]
lea ecx, [esp + 0x44]
push eax
push ecx
push edi
call fcn.00f37ff0
add esp, 0xc
mov eax, 1
jmp 0xf35e25
mov ebx, dword [esp]
cmp dword [esi + 8], ebx
mov edi, dword [esp + 0x5c]
jae 0xf35e19
push ebx
push dword [esi + 0xc]
push dword [esi]
push dword [edi + 0x34]
call dword [edi + 0x30]
add esp, 0x10
test eax, eax
je 0xf35e1c
mov dword [esi], eax
mov dword [esi + 8], ebx
mov dword [esi + 4], ebx
mov dword [edi + 0x1c], 0x10
xor eax, eax
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret