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

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
xor ebp, ebp
xor ebx, ebx
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x5c]
cmp eax, ecx
push edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebp
ja 0x100bcef0
jb 0x100bca9b
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x58]
cmp ecx, eax
jae 0x100bcef0
jmp 0x100bca9b
mov ebx, dword [esp + 0x2c]
cmp dword [esi + 0x140], ebp
jne 0x100bcbbf
cmp dword [esi + 0xec], ebp
jne 0x100bcbbf
mov edi, 1
cmp word [esi + 0x50], di
jne 0x100bcb1e
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x24]
push 4
push edx
push eax
call dword [esi]
add esp, 0xc
cmp eax, 4
jne 0x100bcef0
mov cl, byte [esp + 0x26]
xor eax, eax
mov ax, word [esi + 0x30]
add eax, 0xfffffffc
cmp cl, 0x59
mov dword [esi + 0xec], eax
jae 0x100bcefe
lea ecx, [esp + 0x24]
push ecx
call fcn.100be4a0
mov edx, dword [esp + 0x2a]
add esp, 4
movsx eax, ax
and edx, 0xff
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf8], edx
jmp 0x100bcbb3
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x34]
push 8
push eax
push ecx
call dword [esi]
add esp, 0xc
cmp eax, 8
jne 0x100bcef0
mov cl, byte [esp + 0x36]
xor eax, eax
mov ax, word [esi + 0x30]
add eax, 0xfffffff8
cmp cl, 0x59
mov dword [esi + 0xec], eax
jae 0x100bcf1e
cmp byte [esp + 0x3a], 0x59
jae 0x100bcf1e
lea edx, [esp + 0x34]
push edx
call fcn.100be4a0
mov ecx, dword [esp + 0x3a]
lea edx, [esp + 0x3c]
movsx eax, ax
and ecx, 0xff
push edx
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf8], ecx
call fcn.100be4a0
mov ecx, dword [esp + 0x42]
mov edx, dword [esi + 0xf0]
movsx eax, ax
add esp, 8
and ecx, 0xff
mov dword [esi + 0xf4], eax
mov dword [esi + 0xfc], ecx
mov dword [esi + 0x138], edx
mov dword [esi + 0x13c], eax
mov dword [esi + 0x140], edi
mov edi, dword [esp + 0x4c]
cmp edi, ebp
ja 0x100bcbd1
cmp dword [esp + 0x48], ebp
jbe 0x100bcca3
cmp dword [esi + 0x140], ebp
jbe 0x100bcc9f
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x5c]
cmp eax, ecx
ja 0x100bcc9f
jb 0x100bcbfb
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x58]
cmp ecx, eax
jae 0x100bcc9f
mov ebx, dword [esp + 0x50]
cmp ebx, ebp
je 0x100bcc47
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 0x50]
cmp eax, ebp
jbe 0x100bcc3a
mov edx, ebx
mov ebp, dword [esi + 0x140]
add edx, 2
imul ebp, eax
mov eax, ecx
sub eax, ebp
inc ecx
mov ax, word [esi + eax*4 + 0x140]
mov word [edx - 2], ax
xor eax, eax
mov ax, word [esi + 0x50]
cmp ecx, eax
jb 0x100bcc11
xor ebp, ebp
xor ecx, ecx
mov cx, word [esi + 0x50]
lea edx, [ebx + ecx*2]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esi + 0x78]
add eax, 0xffffffff
mov dword [esp + 0x48], eax
mov eax, 1
adc edi, 0xffffffff
add edx, eax
adc ecx, ebp
add ebx, eax
mov dword [esp + 0x2c], edx
mov dword [esi + 0x78], ebx
mov edx, dword [esi + 0x7c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x140]
adc edx, ebp
dec ecx
cmp edi, ebp
mov dword [esi + 0x7c], edx
mov dword [esi + 0x140], ecx
ja 0x100bcbd1
jb 0x100bcc9f
cmp dword [esp + 0x48], ebp
ja 0x100bcbd1
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x48]
or eax, edi
je 0x100bceec
cmp dword [esi + 0x140], ebp
jne 0x100bcece
cmp dword [esi + 0xec], ebp
je 0x100bcece
cmp word [esi + 0x50], bp
mov dword [esi + 0x140], 8
mov dword [esp + 0x44], ebp
jbe 0x100bcece
lea edi, [esi + 0xf8]
jmp 0x100bcce9
xor ebp, ebp
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x1c]
push 4
push ecx
push edx
call dword [esi]
add esp, 0xc
cmp eax, 4
jne 0x100bcf3e
mov eax, dword [esi + 0xec]
mov dword [esp + 0x14], ebp
add eax, 0xfffffffc
mov dword [esp + 0x18], ebp
mov dword [esi + 0xec], eax
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
mov al, byte [esp + eax + 0x1c]
mov ebp, dword [edx*4 + 0x101126b4]
mov cl, al
mov edx, ebp
shr al, 4
and cl, 0xf
mov bl, al
mov eax, dword [edi - 8]
mov byte [esp + 0x20], cl
sar edx, 3
test cl, 1
mov byte [esp + 0x10], bl
je 0x100bcd54
mov ebx, ebp
sar ebx, 2
add edx, ebx
mov bl, byte [esp + 0x10]
test cl, 2
je 0x100bcd63
mov ebx, ebp
sar ebx, 1
add edx, ebx
mov bl, byte [esp + 0x10]
test cl, 4
je 0x100bcd6a
add edx, ebp
test cl, 8
je 0x100bcd71
neg edx
add edx, eax
cmp edx, 0x7fff
jg 0x100bcd92
cmp edx, 0xffff8000
jge 0x100bcd8a
mov edx, 0xffff8000
jmp 0x100bcd97
cmp edx, 0x7fff
jle 0x100bcd97
mov edx, 0x7fff
mov eax, dword [esp + 0x20]
mov dword [edi - 8], edx
and eax, 0xff
mov ecx, dword [eax*4 + 0x10112674]
mov eax, dword [edi]
add ecx, eax
cmp ecx, 0x58
jg 0x100bcdc0
test ecx, ecx
jge 0x100bcdbb
xor ecx, ecx
jmp 0x100bcdc5
cmp ecx, 0x58
jle 0x100bcdc5
mov ecx, 0x58
mov dword [edi], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x140]
mov ebp, dword [esp + 0x44]
sub ecx, eax
xor eax, eax
mov ax, word [esi + 0x50]
imul ecx, eax
add ecx, ebp
mov dword [esi + ecx*4 + 0x140], edx
mov ecx, dword [edi]
mov ebp, dword [edi - 8]
mov edx, dword [ecx*4 + 0x101126b4]
mov ecx, edx
sar ecx, 3
test bl, 1
je 0x100bce06
mov eax, edx
sar eax, 2
add ecx, eax
test bl, 2
je 0x100bce11
mov eax, edx
sar eax, 1
add ecx, eax
test bl, 4
je 0x100bce18
add ecx, edx
test bl, 8
je 0x100bce1f
neg ecx
add ecx, ebp
cmp ecx, 0x7fff
jg 0x100bce40
cmp ecx, 0xffff8000
jge 0x100bce38
mov ecx, 0xffff8000
jmp 0x100bce45
cmp ecx, 0x7fff
jle 0x100bce45
mov ecx, 0x7fff
mov edx, dword [esp + 0x10]
mov dword [edi - 8], ecx
and edx, 0xff
mov eax, dword [edx*4 + 0x10112674]
mov edx, dword [edi]
add eax, edx
cmp eax, 0x58
jg 0x100bce6f
test eax, eax
jge 0x100bce6a
xor eax, eax
jmp 0x100bce74
cmp eax, 0x58
jle 0x100bce74
mov eax, 0x58
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov ebp, dword [esi + 0x140]
mov edx, eax
sub edx, ebp
xor ebx, ebx
mov bx, word [esi + 0x50]
inc edx
imul edx, ebx
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
add edx, ebp
add eax, 2
inc ebx
cmp eax, 8
mov dword [esi + edx*4 + 0x140], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
jl 0x100bcd19
mov eax, ebp
xor ecx, ecx
mov cx, word [esi + 0x50]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x44], eax
jb 0x100bcce7
xor ebp, ebp
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0x5c]
cmp edx, eax
jb 0x100bca97
ja 0x100bceec
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x58]
cmp eax, ecx
jb 0x100bca97
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x30
ret
mov ecx, dword [esi + 0xc]
push edi
push eax
push ecx
call dword [esi + 8]
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esi + 0xec], ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov edx, dword [esi + 0xc]
push edi
push eax
push edx
call dword [esi + 8]
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esi + 0xec], ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x140], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret