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

Disassembly:
sub esp, 0x38
push ebp
push esi
mov esi, dword [esp + 0x44]
xor ebp, ebp
mov eax, 4
mov ecx, 2
push edi
mov edx, 8
mov edi, 1
push esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edi
mov dword [esi + 0x78], ebp
call fcn.23af1c60
add esp, 4
cmp byte [esi + 0x123], 0
je 0x23b3d71d
test byte [esi + 0x70], 2
jne 0x23b3d6c7
mov eax, dword [esi + 0xcc]
add eax, 7
shr eax, 3
mov dword [esi + 0xd0], eax
jmp 0x23b3d6d3
mov ecx, dword [esi + 0xcc]
mov dword [esi + 0xd0], ecx
movzx eax, byte [esi + 0x124]
mov edx, dword [esi + 0xc8]
add eax, eax
add eax, eax
sub edx, dword [esp + eax + 0x28]
mov ecx, dword [esp + eax + 0xc]
lea eax, [edx + ecx - 1]
xor edx, edx
div ecx
mov cl, byte [esi + 0x129]
cmp cl, 8
movzx ecx, cl
mov dword [esi + 0xe0], eax
jb 0x23b3d711
shr ecx, 3
imul ecx, eax
inc ecx
jmp 0x23b3d73d
imul ecx, eax
add ecx, 7
shr ecx, 3
inc ecx
jmp 0x23b3d73d
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd8]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xc8]
mov dword [esi + 0xe0], eax
add ecx, edi
movzx eax, byte [esi + 0x129]
push ebx
mov ebx, dword [esi + 0x70]
mov dword [esi + 0xdc], ecx
test bl, 4
je 0x23b3d761
cmp byte [esi + 0x127], 8
jae 0x23b3d761
mov eax, 8
mov edi, ebx
and edi, 0x1000
je 0x23b3d7c9
mov cl, byte [esi + 0x126]
cmp cl, 3
jne 0x23b3d78b
xor eax, eax
cmp word [esi + 0x11a], bp
setne al
lea eax, [eax*8 + 0x18]
jmp 0x23b3d7c9
test cl, cl
jne 0x23b3d7a6
cmp eax, 8
jge 0x23b3d799
mov eax, 8
cmp word [esi + 0x11a], bp
je 0x23b3d7c9
add eax, eax
jmp 0x23b3d7c9
cmp cl, 2
jne 0x23b3d7c9
cmp word [esi + 0x11a], bp
je 0x23b3d7c9
lea ecx, [eax*4]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ebx
and edx, 0x8000
je 0x23b3d812
mov cl, byte [esi + 0x126]
cmp cl, 3
jne 0x23b3d7e5
mov eax, 0x20
jmp 0x23b3d812
test cl, cl
jne 0x23b3d7fa
xor ecx, ecx
cmp eax, 8
setg cl
dec ecx
and ecx, 0xfffffff0
add ecx, 0x20
jmp 0x23b3d80e
cmp cl, 2
jne 0x23b3d812
xor ecx, ecx
cmp eax, 0x20
setg cl
dec ecx
and ecx, 0xffffffe0
add ecx, 0x40
xor ebp, ebp
mov eax, ecx
test ebx, 0x4000
je 0x23b3d86e
cmp word [esi + 0x11a], bp
je 0x23b3d827
cmp edi, ebp
jne 0x23b3d85d
cmp edx, ebp
jne 0x23b3d85d
mov cl, byte [esi + 0x126]
cmp cl, 4
je 0x23b3d85d
cmp eax, 8
jg 0x23b3d84c
xor eax, eax
cmp cl, 6
sete al
lea eax, [eax*8 + 0x18]
jmp 0x23b3d86e
xor eax, eax
cmp cl, 6
setne al
dec eax
and eax, 0x10
add eax, 0x30
jmp 0x23b3d86e
xor edx, edx
cmp eax, 0x10
setg dl
dec edx
and edx, 0xffffffe0
add edx, 0x40
mov eax, edx
test ebx, 0x100000
pop ebx
je 0x23b3d888
movzx ecx, byte [esi + 0x65]
movzx edx, byte [esi + 0x64]
imul ecx, edx
cmp ecx, eax
jle 0x23b3d888
mov eax, ecx
mov ecx, dword [esi + 0xc8]
add ecx, 7
and ecx, 0xfffffff8
cmp eax, 8
jl 0x23b3d8a3
mov edx, eax
shr edx, 3
imul edx, ecx
jmp 0x23b3d8ae
imul ecx, eax
add ecx, 7
shr ecx, 3
mov edx, ecx
add eax, 7
sar eax, 3
lea ebp, [eax + edx + 1]
lea edi, [ebp + 0x40]
cmp edi, dword [esi + 0x280]
jbe 0x23b3d90a
mov eax, dword [esi + 0x250]
push eax
push esi
call fcn.23b3c220
push edi
push esi
call fcn.23b3c1d0
add esp, 0x10
cmp byte [esi + 0x123], 0
mov dword [esi + 0x250], eax
je 0x23b3d8f5
push edi
push 0
push eax
call fcn.23a49830
add esp, 0xc
mov ecx, dword [esi + 0x250]
add ecx, 0x20
mov dword [esi + 0xec], ecx
mov dword [esi + 0x280], edi
cmp ebp, 0xfffffffe
jbe 0x23b3d91d
push str.Row_has_too_many_bytes_to_allocate_in_memory.
push esi
call fcn.23b3c600
add esp, 8
lea edi, [ebp + 1]
cmp edi, dword [esi + 0x284]
jbe 0x23b3d955
mov edx, dword [esi + 0xe8]
push edx
push esi
call fcn.23b3c220
push edi
push esi
call fcn.23b3c1d0
push edi
push 0
push eax
push esi
mov dword [esi + 0xe8], eax
call fcn.23b3c140
add esp, 0x20
mov dword [esi + 0x284], edi
or dword [esi + 0x6c], 0x40
pop edi
mov dword [esi + 0xd8], ebp
pop esi
pop ebp
add esp, 0x38
ret