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

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x38]
push ebp
push esi
mov esi, dword [esp + 0x54]
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x30], edi
mov al, byte [esi]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x101054c0
movzx eax, byte [eax + 1]
jmp 0x101054c2
xor eax, eax
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], eax
test ebp, ebp
je 0x101054da
cmp dword [ebp], 0
jne 0x101054f2
xor ebp, ebp
mov dword [esp + 0x50], ebp
test eax, eax
jne 0x101054f2
mov ecx, dword [esp + 0x48]
push dword [esp + 0x5c]
push dword [ecx + 0xc]
push edi
call fcn.100e2200
add esp, 0xc
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], edx
test eax, eax
jne 0x1010552c
test ebp, ebp
je 0x10105520
mov eax, dword [ebp]
test byte [ebp + 0x20], 1
mov eax, dword [eax]
lea ecx, [eax + 1]
cmovne ecx, eax
add dword [ebx + 0x2c], ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esi + 0xc], eax
add dword [ebx + 0x2c], edx
jmp 0x1010553b
mov ecx, dword [ebx + 0x2c]
add eax, edx
cmp eax, ecx
jle 0x1010553b
lea eax, [ecx + edx]
mov dword [ebx + 0x2c], eax
cmp dword [esp + 0x4c], 0
mov dword [esi + 0x10], edx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jl 0x101055b8
xor ebp, ebp
test edx, edx
jle 0x101056ea
mov ebx, dword [esp + 0x4c]
nop
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x1010557f
lea eax, [esi + ebp]
push eax
push ebp
push ebx
push 0x5e
push edi
call fcn.100f0a80
mov edx, dword [esp + 0x28]
add esp, 0x14
jmp 0x101055aa
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebp
lea ecx, [eax + ecx*4]
lea eax, [esi + ebp]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
inc ebp
cmp ebp, edx
jl 0x10105560
mov ebx, dword [esp + 0x44]
jmp 0x101056ea
mov cl, byte [esp + 0x13]
cmp cl, 3
je 0x101056ea
cmp cl, 0xa
je 0x101055d8
cmp cl, 9
je 0x101055d8
cmp cl, 0xd
je 0x101055d8
xor al, al
jmp 0x101055da
mov al, 1
mov byte [esp + 0x4c], al
test ebp, ebp
je 0x101056a5
cmp dword [esp + 0x28], 0
jne 0x101056a5
cmp cl, 0xc
je 0x101056a5
cmp cl, 0xe
je 0x101056a5
mov ecx, dword [ebp]
or al, 0xc
mov byte [esp + 0x4c], al
mov eax, dword [ebp + 4]
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx]
jge 0x1010565b
mov edi, dword [esp + 0x48]
mov ebx, eax
lea esi, [ebx + ebx*4]
shl esi, 2
movzx eax, word [ecx + esi + 0x18]
test eax, eax
je 0x10105640
lea ecx, [eax + eax*4]
mov dx, bx
sub dx, word [ebp + 4]
mov eax, dword [edi + 0x1c]
inc dx
mov word [eax + ecx*4 + 4], dx
mov ecx, dword [ebp]
inc ebx
add esi, 0x14
cmp ebx, dword [ecx]
jl 0x10105623
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x101056a5
mov esi, dword [esp + 0x24]
lea ebx, [ecx + 0x18]
mov ebp, eax
movzx ecx, word [ebx]
lea ebx, [ebx + 0x14]
mov eax, edx
test cx, cx
lea edx, [eax - 1]
cmove edx, eax
xor eax, eax
test cx, cx
cmove eax, esi
mov esi, eax
sub ebp, 1
jne 0x10105671
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x48]
mov al, byte [esp + 0x4c]
mov dword [esp + 0x38], esi
mov byte [esp + 0x3c], al
cmp dword [ecx + 8], 0
je 0x101056d7
test al, 8
je 0x101056d7
cmp dword [esp + 0x1c], 0
jle 0x101056d7
lea eax, [esp + 0x38]
mov dword [esp + 0x24], 0
mov dword [ebp + 0x24], eax
jmp 0x101056ee
push dword [esp + 0x4c]
push 0
push esi
push dword [ecx + 0x1c]
push ebx
call fcn.10115da0
add esp, 0x14
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x28], 0
je 0x10105740
push dword [esp + 0x20]
mov ebp, dword [esp + 0x58]
push dword [ecx + 0x1c]
push dword [esp + 0x64]
movzx esi, byte [ebp + 1]
push dword [ebp + 4]
push esi
push ebx
call fcn.100e16e0
push dword [ebp + 8]
push eax
push esi
push ebx
call fcn.100eada0
mov eax, dword [esp + 0x78]
add esp, 0x28
test eax, eax
jne 0x10105759
mov eax, dword [esp + 0x48]
push dword [esp + 0x5c]
push dword [eax + 0xc]
push edi
call fcn.100e2200
mov esi, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
dec ecx
cmp ecx, 0xe
ja case.0x10105752.4
jmp dword [ecx*4 + 0x10105dec]
mov esi, dword [esp + 0x20]
jmp 0x10105744
mov al, byte [ebx + 0x13]
test al, al
jne 0x1010576e
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x1010577d
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
mov ebp, dword [esp + 0x14]
push eax
push ebp
push esi
push 0x61
push edi
mov dword [esp + 0x6c], eax
call fcn.10139b60
push ebp
push esi
mov esi, dword [esp + 0x74]
push esi
push dword [esp + 0x38]
push 0x8a
push edi
call fcn.10139c40
add esp, 0x2c
test esi, esi
je case.0x10105752.4
mov al, byte [ebx + 0x13]
cmp al, 8
jae case.0x10105752.4
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], esi
inc byte [ebx + 0x13]
jmp case.0x10105752.4
mov ebp, dword [esp + 0x14]
push ebp
push esi
push dword [esp + 0x20]
push 0x8c
push edi
call fcn.10139b60
add esp, 0x14
jmp case.0x10105752.4
mov eax, dword [esp + 0x1c]
inc eax
push eax
push ebx
call fcn.101201a0
mov ecx, dword [edi + 0x6c]
mov ebp, eax
mov eax, dword [esp + 0x24]
add esp, 8
add eax, ebp
mov dword [esp + 0x4c], ebp
cmp dword [edi + 0x70], ecx
jg 0x10105828
mov ebp, dword [esp + 0x14]
push eax
push ebp
push esi
push 0x61
push edi
call fcn.100f0a80
mov edx, ebp
add esp, 0x14
mov ebp, dword [esp + 0x4c]
jmp 0x1010585d
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x44]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
add esi, ebp
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x101058c1
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x10105882
cmp edx, 0xfffffff5
je 0x101058c1
push esi
push edx
push eax
call fcn.100edee0
add esp, 0xc
jmp 0x101058c1
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
test edx, edx
jns 0x101058b5
cmp byte [eax + 1], 0
jne 0x101058b5
mov dword [eax + 0x10], esi
cmp edx, 0xfffffffd
jne 0x101058a8
mov byte [eax + 1], dl
jmp 0x101058c1
mov byte [eax + 1], dl
cmp edx, 0xfffffff5
jne 0x101058c1
inc dword [esi + 0xc]
jmp 0x101058c1
push edx
push esi
push eax
push edi
call fcn.10155940
add esp, 0x10
cmp byte [esp + 0x13], 5
jne 0x101058fd
mov eax, dword [edi + 0x6c]
mov esi, dword [esp + 0x18]
add eax, 4
push 0
push ebp
push eax
inc esi
push esi
push 0x1d
push edi
call fcn.10139c40
mov ebp, dword [esp + 0x2c]
push ebp
push dword [esp + 0x3c]
mov ebp, dword [esp + 0x6c]
push ebp
push esi
push 0x8a
push edi
call fcn.10139c40
add esp, 0x30
mov esi, dword [esp + 0x50]
test esi, esi
je 0x10105927
mov ecx, dword [esp + 0x1c]
push ecx
push 1
push dword [esp + 0x2c]
lea eax, [ecx + ebp]
push eax
push dword [esp + 0x58]
push esi
push ebx
call fcn.100ff260
add esp, 0x1c
jmp 0x101059ad
mov al, byte [ebx + 0x13]
test al, al
jne 0x10105936
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x10105945
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
push eax
push dword [esp + 0x1c]
mov dword [esp + 0x58], eax
push 0x7f
push edi
call fcn.10139b00
push dword [esp + 0x60]
push dword [esp + 0x60]
push dword [esp + 0x30]
push 0x80
push edi
call fcn.10139b60
mov eax, dword [edi + 0x6c]
add esp, 0x24
test eax, eax
jle 0x10105987
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x50]
lea ecx, [ebx + 0x13]
mov ebp, dword [esp + 0x4c]
test edx, edx
je 0x101059b0
mov al, byte [ebx + 0x13]
lea ecx, [ebx + 0x13]
cmp al, 8
jae 0x101059b0
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], edx
inc byte [ebx + 0x13]
lea ecx, [ebx + 0x13]
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 1
jne 0x101059dd
test ebp, ebp
je 0x10105d84
mov al, byte [ecx]
cmp al, 8
jae 0x10105d84
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], ebp
inc byte [ecx]
jmp 0x10105d84
cmp eax, dword [ebx + 0x1c]
jle 0x10105d84
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ebp
jmp 0x10105d84
test eax, eax
jne 0x10105ad8
mov ecx, dword [esp + 0x58]
push ebx
mov ebp, dword [ecx + 8]
mov dword [esp + 0x54], ebp
call fcn.10120200
push dword [esp + 0x64]
mov ebx, eax
push esi
push 0x32
push edi
call fcn.10139b00
mov ecx, ebp
mov ebp, dword [esp + 0x28]
shr ecx, 0x1f
push ebx
sub ebp, ecx
push ebp
lea eax, [ecx + esi]
push eax
push 0x61
push edi
call fcn.10139b60
mov eax, dword [esp + 0x78]
add esp, 0x28
test eax, eax
jns 0x10105a56
push esi
push ebx
push dword [esp + 0x20]
push 0x80
push edi
call fcn.10139b60
add esp, 0x14
jmp 0x10105d88
push eax
push esi
push ebx
push dword [esp + 0x24]
push 0x8a
push edi
call fcn.10139c40
add esp, 0x18
jmp 0x10105d88
test eax, eax
jne 0x10105ad8
push ebx
call fcn.10120200
mov ecx, dword [esp + 0x5c]
mov esi, eax
mov ebp, dword [esp + 0x18]
push ebp
push dword [ecx + 0x14]
push esi
push ebp
push dword [esp + 0x34]
push 0x61
push edi
call fcn.10139bc0
push ebp
push dword [esp + 0x44]
push esi
push dword [esp + 0x44]
push 0x8a
push edi
call fcn.10139c40
push esi
push ebx
call fcn.1012e730
add esp, 0x40
jmp 0x10105d88
push dword [esp + 0x18]
push 1
push 0x47
push edi
call fcn.10139b00
add esp, 0x10
jmp case.0x10105752.4
test eax, eax
je 0x10105d88
push dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
push ebp
push dword [esp + 0x2c]
push esi
push ecx
push eax
push ebx
call fcn.100ff260
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
test eax, eax
jne 0x10105ad8
cmp byte [esp + 0x13], 0xd
jne 0x10105b1f
mov ecx, dword [esp + 0x58]
push dword [ecx + 4]
push 0xc
push edi
call fcn.10139aa0
add esp, 0xc
jmp 0x10105d88
mov ebp, dword [esp + 0x14]
push ebp
push esi
push 0x54
push edi
call fcn.10139b00
add esp, 0x10
jmp 0x10105d88
mov ecx, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x34], eax
mov ebp, dword [eax]
mov al, byte [ebx + 0x13]
mov dword [esp + 0x28], ebp
test al, al
jne 0x10105b5b
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x10105b6a
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
mov dword [esp + 0x58], eax
lea eax, [ebp + 2]
push eax
push ebx
mov dword [esp + 0x24], eax
call fcn.101201a0
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x24], eax
inc ecx
add eax, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
inc eax
cmp byte [esp + 0x13], 6
jne 0x10105bf6
push ebp
push esi
push 0
push ecx
push 0x1d
push edi
call fcn.10139c40
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x6c], eax
push ecx
push ebp
push esi
push 0x61
push edi
call fcn.10139b60
mov eax, dword [esp + 0x78]
inc eax
push eax
mov eax, dword [esp + 0x48]
inc eax
push eax
push 0x8a
push edi
call fcn.10139b00
mov eax, dword [edi + 0x6c]
add esp, 0x3c
test eax, eax
jle 0x10105c04
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
jmp 0x10105c04
push eax
push ebp
push esi
push 0x61
push edi
call fcn.10139b60
add esp, 0x14
cmp dword [esp + 0x28], 0
jle 0x10105c75
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
add ebx, 0x18
movzx eax, word [ebx]
lea edx, [esi - 1]
mov ecx, dword [edi + 0x6c]
add edx, eax
cmp dword [edi + 0x70], ecx
jg 0x10105c37
push 0
push ebp
push edx
push 0x51
push edi
call fcn.100f0a80
add esp, 0x14
jmp 0x10105c66
mov esi, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
inc ebp
add ebx, 0x14
sub dword [esp + 0x28], 1
jne 0x10105c16
mov ebx, dword [esp + 0x44]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10105c94
push 0
push dword [esp + 0x50]
push dword [esp + 0x20]
push 0x7e
push edi
call fcn.100f0a80
add esp, 0x14
jmp 0x10105cc7
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x10105ceb
push edx
push ebp
push esi
push 0x61
push edi
call fcn.100f0a80
add esp, 0x14
jmp 0x10105d12
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push ebp
push esi
push dword [esp + 0x60]
push dword [esp + 0x24]
push 0x8a
push edi
call fcn.10139c40
mov ecx, dword [esp + 0x6c]
add esp, 0x18
test ecx, ecx
je 0x10105d50
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x10105d44
mov eax, 0x101a3d48
jmp 0x10105d4d
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x10105d6c
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x10105d6c
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], ecx
inc byte [ebx + 0x13]
cmp ebp, 1
je 0x101057a9
cmp ebp, dword [ebx + 0x1c]
jle case.0x10105752.4
mov dword [ebx + 0x1c], ebp
mov dword [ebx + 0x20], esi
mov esi, dword [esp + 0x50]
test esi, esi
jne 0x10105de4
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
test edx, edx
je 0x10105de4
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10105db5
push 0
push dword [esp + 0x64]
push edx
push 0x3d
push edi
call fcn.100f0a80
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x3d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret