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

Disassembly:
sub esp, 0x60
mov eax, dword [0x102933b0]
xor eax, esp
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x68], 0
mov eax, dword [esp + 0x64]
push ebx
mov ebx, ecx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3c], eax
mov dword [eax], ecx
jne 0x10136988
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.101556a8
add esp, 0x60
ret 0x1c
mov ecx, dword [ebx + 0x30]
cmp ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
lea eax, [ebx + 0x30]
mov dword [esp + 0xc], edx
jl 0x101369a0
lea eax, [esp + 0x78]
mov edx, dword [eax]
mov eax, dword [esp + 0x74]
mov ecx, dword [ebx + 0x34]
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x34]
mov dword [esp + 8], edx
jl 0x101369be
lea eax, [esp + 0x7c]
mov edx, dword [eax]
mov ecx, dword [ebx + 0x24]
push ebp
push edi
mov edi, dword [ebx + 0x18]
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x24], edx
call fcn.10113eb0
xor ebp, ebp
push esi
lea esp, [esp]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [ebx + 0x24]
call fcn.10113ed0
mov esi, eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x101369fb
cmp eax, dword [esi]
je 0x10136a00
call fcn.1014f6d2
mov edx, dword [esp + 0x2c]
cmp edx, dword [esi + 4]
je 0x10136ac7
mov esi, dword [ebx + 0x28]
add esi, ebp
mov dword [esi], edi
mov dword [esi + 4], edi
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x10136a2c
call fcn.1014f6d2
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10136a30
mov eax, dword [eax]
jmp 0x10136a32
xor eax, eax
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x18]
jne 0x10136a40
call fcn.1014f6d2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [ecx + 0x110]
push eax
push edx
call fcn.1012cc90
mov dword [esi + 8], eax
mov eax, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x10136a75
call fcn.1014f6d2
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10136a79
mov eax, dword [eax]
jmp 0x10136a7b
xor eax, eax
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x18]
jne 0x10136a89
call fcn.1014f6d2
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [ecx + 0x114]
push eax
push edx
call fcn.1012cc90
mov ecx, dword [esi + 0x1c]
imul ecx, dword [esi + 8]
imul ecx, eax
lea edi, [edi + ecx*2]
add esp, 0xc
lea ecx, [esp + 0x28]
mov dword [esi + 0xc], eax
call fcn.10013e00
add ebp, 0x20
jmp 0x101369e0
xor eax, eax
cmp dword [ebx + 0x20], eax
mov dword [esp + 0x14], eax
jle 0x10136d20
mov dword [esp + 0x18], eax
jmp 0x10136ae2
xor eax, eax
mov edi, dword [ebx + 0x28]
add edi, dword [esp + 0x18]
cmp dword [edi + 0x14], 1
je 0x10136b26
mov esi, dword [edi + 0x1c]
imul esi, dword [edi + 0xc]
imul esi, dword [edi + 8]
add esi, esi
cmp dword [esp + 0x78], esi
jl 0x10136d75
mov ebp, dword [esp + 0x10]
mov edx, dword [edi]
push esi
push ebp
push edx
call fcn.101541d0
add ebp, esi
add esp, 0xc
sub dword [esp + 0x78], esi
mov dword [esp + 0x10], ebp
jmp 0x10136d09
cmp dword [edi + 0xc], eax
mov dword [esp + 0x40], eax
jle 0x10136d09
mov dword [esp + 0x30], 1
jmp 0x10136b40
mov eax, dword [edi + 8]
mov edx, dword [edi]
mov esi, dword [edi + 8]
mov ecx, eax
imul ecx, dword [esp + 0x40]
lea ebx, [edx + ecx*2]
lea ecx, [ebx + eax*2]
mov dword [esp + 0x34], ecx
lea ecx, [ecx + eax*2]
lea eax, [ecx + eax*2]
xor ebp, ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
test esi, esi
jle 0x10136cec
mov ecx, dword [esp + 0x78]
cmp ecx, 3
jl 0x10136d75
mov eax, dword [esp + 0x10]
cmp byte [eax + 2], 0xfc
jne 0x10136be7
movzx dx, byte [eax]
movzx cx, byte [eax + 1]
shl dx, 8
or cx, dx
mov word [esp + 0x4c], cx
mov eax, dword [esp + 0x4c]
test eax, 0x8000
je 0x10136bbc
mov eax, 0x7fff
and cx, ax
mov word [esp + 0x4c], cx
mov eax, 1
jmp 0x10136bd5
not eax
mov cx, ax
mov word [esp + 0x4c], cx
mov eax, 1
jmp 0x10136bd5
mov cx, word [esp + 0x4c]
mov word [esp + eax*2 + 0x4c], cx
inc eax
cmp eax, 0x10
jl 0x10136bd0
mov eax, 3
jmp 0x10136c07
cmp ecx, 0xe
jl 0x10136d75
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x4c]
push ecx
push edx
call fcn.10135c80
add esp, 8
mov eax, 0xe
add dword [esp + 0x10], eax
sub dword [esp + 0x78], eax
cmp byte [edi + 0x18], 0
je 0x10136c22
lea eax, [esp + 0x4c]
push eax
call fcn.101358a0
add esp, 4
lea ecx, [ebp + 3]
cmp ecx, esi
jge 0x10136c30
mov esi, 8
jmp 0x10136c34
sub esi, ebp
add esi, esi
mov edx, dword [esp + 0x30]
add edx, 2
cmp edx, dword [edi + 0xc]
push esi
jge 0x10136c84
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.101541d0
mov edx, dword [esp + 0x40]
push esi
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.101541d0
mov ecx, dword [esp + 0x50]
push esi
lea eax, [esp + 0x78]
push eax
push ecx
call fcn.101541d0
mov eax, dword [esp + 0x60]
push esi
lea edx, [esp + 0x8c]
push edx
push eax
call fcn.101541d0
add esp, 0x30
jmp 0x10136ccb
lea ecx, [esp + 0x50]
push ecx
push ebx
call fcn.101541d0
mov edx, dword [esp + 0x3c]
add esp, 0xc
cmp edx, dword [edi + 0xc]
jge 0x10136cae
mov ecx, dword [esp + 0x34]
push esi
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.101541d0
add esp, 0xc
mov edx, dword [esp + 0x30]
inc edx
cmp edx, dword [edi + 0xc]
jge 0x10136ccb
mov ecx, dword [esp + 0x38]
push esi
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.101541d0
add esp, 0xc
mov esi, dword [edi + 8]
mov eax, 8
add dword [esp + 0x34], eax
add dword [esp + 0x38], eax
add dword [esp + 0x3c], eax
add ebp, 4
add ebx, eax
cmp ebp, esi
jl 0x10136b71
mov eax, dword [esp + 0x40]
add dword [esp + 0x30], 4
add eax, 4
cmp eax, dword [edi + 0xc]
mov dword [esp + 0x40], eax
jl 0x10136b40
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add dword [esp + 0x18], 0x20
inc eax
cmp eax, dword [ebx + 0x20]
mov dword [esp + 0x14], eax
jl 0x10136ae0
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x10], 1
mov ebp, dword [eax + 0x1c]
jne 0x10136e1e
mov ebx, dword [esp + 0x20]
cmp ebx, dword [esp + 0x24]
jg 0x10136eba
mov edi, eax
cmp dword [edi + 0x20], 0
mov dword [esp + 0x14], 0
jle 0x10136e0e
mov dword [esp + 0x18], 0
jmp 0x10136d60
mov esi, dword [edi + 0x28]
add esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
test ebx, ebx
jl 0x10136d7a
mov eax, ebx
cdq
idiv ecx
jmp 0x10136d91
call fcn.10135f20
test ecx, ecx
jl 0x10136d85
mov eax, ecx
sub eax, ebx
dec eax
jmp 0x10136d8c
or eax, 0xffffffff
sub eax, ecx
sub eax, ebx
cdq
idiv ecx
neg eax
imul eax, ecx
mov edx, ebx
sub edx, eax
jne 0x10136df7
cmp dword [esi + 0x14], 1
jne 0x10136dd6
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x10136df7
mov edx, 2
lea esp, [esp]
mov eax, dword [esi + 4]
movzx eax, word [eax]
mov byte [esp + 0x10], al
shr eax, 8
mov byte [esp + 0x11], al
mov ax, word [esp + 0x10]
mov word [ebp], ax
add dword [esi + 4], edx
dec ecx
add ebp, edx
test ecx, ecx
jg 0x10136db0
jmp 0x10136df7
mov eax, dword [esi + 0x1c]
imul eax, dword [esi + 8]
mov ecx, dword [esi + 4]
lea edi, [eax + eax]
push edi
push ecx
push ebp
call fcn.101541d0
add ebp, edi
add esp, 0xc
add dword [esi + 4], edi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add dword [esp + 0x18], 0x20
inc eax
cmp eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
jl 0x10136d60
inc ebx
cmp ebx, dword [esp + 0x24]
jle 0x10136d41
jmp 0x10136eba
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x24]
jg 0x10136eba
mov ebx, eax
mov edi, edi
cmp dword [ebx + 0x20], 0
mov dword [esp + 0x14], 0
jle 0x10136eaf
mov dword [esp + 0x20], 0
mov esi, dword [ebx + 0x28]
add esi, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
test edi, edi
jl 0x10136e5b
mov eax, edi
cdq
idiv ecx
jmp 0x10136e72
test ecx, ecx
jl 0x10136e66
mov eax, ecx
sub eax, edi
dec eax
jmp 0x10136e6d
or eax, 0xffffffff
sub eax, ecx
sub eax, edi
cdq
idiv ecx
neg eax
imul eax, ecx
mov edx, edi
sub edx, eax
jne 0x10136e9c
mov eax, dword [esi + 0x1c]
imul eax, dword [esi + 8]
lea ebx, [eax + eax]
mov eax, dword [esi + 4]
push ebx
push eax
push ebp
call fcn.101541d0
add ebp, ebx
add esp, 0xc
add dword [esi + 4], ebx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], 0x20
inc eax
cmp eax, dword [ebx + 0x20]
mov dword [esp + 0x14], eax
jl 0x10136e46
inc edi
cmp edi, dword [esp + 0x24]
jle 0x10136e30
cmp dword [esp + 0x78], 0
jle 0x10136ec6
call fcn.10135f50
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x1c]
mov eax, dword [esp + 0x48]
pop esi
mov dword [eax], edx
pop edi
mov eax, ebp
sub eax, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x64]
pop ebp
pop ebx
xor ecx, esp
call fcn.101556a8
add esp, 0x60
ret 0x1c