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

Disassembly:
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x100ff1f
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x1010038
lea ecx, [esp + 0x5c]
mov word [esp + 0x5c], 0x20
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], 1
jmp 0x10106a8
lea eax, [esp + 0x60]
mov word [esp + 0x60], 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0x8c], 1
jmp 0x10106a8
mov edi, dword [esp + 0x14]
xor esi, esi
test cl, cl
je 0x1011c28
mov edx, dword [esp + 0x2c]
test al, al
je 0x1011c6e
test byte [esp + 0x7c], 2
jne 0x1011ca6
test byte [esp + 0x7c], 4
mov cl, byte [esp + 0x44]
jne 0x1011d1c
cmp cl, 2
jne 0x100ffe5
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x100ff83
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0x84]
lea edi, [esp + 0x5c]
inc ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x84], ecx
mov ecx, ebx
and ecx, 0xff
mov dword [esp + 0x6c], 2
shl ecx, 2
mov si, word [ecx + 0x5fc804a8]
mov cx, word [ecx + 0x5fc804aa]
mov word [esp + 0x5c], si
mov word [esp + 0x5e], cx
mov ecx, dword [esp + 0x5c]
mov esi, 1
and ecx, 0xffff
mov ebx, dword [edx + ecx*4]
mov ecx, dword [esp + 0x28]
and ebx, ecx
mov cl, byte [esp + 0x44]
mov dword [esp + 0x20], ebx
cmp al, 2
je 0x1010058
test esi, esi
je 0x10100c9
mov eax, dword [esp + 0x84]
test eax, eax
je 0x101000b
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x10106f9
mov eax, dword [esp + 0x7c]
test eax, 0x8000000
jne 0x100fee6
mov ebp, dword [esp + 0x84]
test ebp, ebp
jne 0x101087c
mov ecx, dword [esp + 0x8c]
test ecx, ecx
jne 0x101082f
mov eax, dword [esp + 0x78]
cmp eax, 7
mov eax, 2
je 0x1010887
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x1010068
mov edx, dword [esp + 0x10]
mov dword [esp + 0x58], edx
mov edx, ebp
lea eax, [esp + 0x60]
and edx, 0xff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x70], 2
shl edx, 2
inc eax
mov cx, word [edx + 0x5fc804a8]
mov dx, word [edx + 0x5fc804aa]
mov dword [esp + 0x8c], eax
mov word [esp + 0x60], cx
mov ecx, dword [esp + 0x2c]
mov word [esp + 0x62], dx
mov eax, dword [esp + 0x60]
and eax, 0xffff
mov ebp, dword [ecx + eax*4]
mov eax, dword [esp + 0x28]
and ebp, eax
mov dword [esp + 0x1c], ebp
jmp 0x100fff1
mov eax, dword [esp + 0x44]
and eax, 0xff
dec eax
je 0x1011e0c
sub eax, 5
je 0x1010258
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
and eax, 0xff
dec eax
je 0x1011ef9
sub eax, 5
je 0x101027a
test esi, esi
jne 0x100fff1
cmp cl, 3
jne 0x101044f
mov al, byte [esp + 0x23]
mov cl, byte [esp + 0x20]
and al, 0x3f
cmp cl, 1
mov dword [esp + 0x18], 0
jbe 0x1010361
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov ebp, dword [esp + 0x38]
mov byte [esp + 0x19], 3
mov ch, byte [edx + 0x20]
mov dl, al
mov cl, byte [esp + 0x20]
and dl, 0xc6
mov dword [esp + 0x4c], ecx
mov cl, al
and cl, 0xe4
and al, 0xc5
mov byte [esp + 0x18], dl
mov byte [esp + 0x1a], cl
mov byte [esp + 0x1b], al
cmp byte [esp + 0x20], 1
jbe 0x101041b
mov byte [esp + 0x23], 2
mov ecx, dword [esp + 0x78]
cmp ecx, 2
jle 0x101044f
cmp byte [esp + 0x48], 3
jne 0x101042c
mov al, byte [esp + 0x1f]
mov cl, byte [esp + 0x1c]
and al, 0x3f
cmp cl, 1
mov dword [esp + 0x30], 0
jbe 0x101045f
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov ebp, dword [esp + 0x3c]
mov bl, 3
mov ch, byte [edx + 0x20]
mov dl, al
mov cl, byte [esp + 0x1c]
and dl, 0xc6
mov dword [esp + 0x50], ecx
mov cl, al
and cl, 0xe4
and al, 0xc5
mov byte [esp + 0x32], cl
cmp byte [esp + 0x1c], 1
jbe 0x1010513
mov byte [esp + 0x1f], 2
mov esi, dword [esp + 0x78]
mov edi, 2
cmp esi, edi
jle 0x1010735
cmp byte [esp + 0x44], 3
jne 0x1010524
cmp byte [esp + 0x18], dl
jne 0x1010548
cmp esi, 3
jle 0x1010735
mov cl, byte [esp + 0x19]
cmp cl, bl
jne 0x101056d
cmp esi, 4
jle 0x1010735
mov dl, byte [esp + 0x1a]
mov cl, byte [esp + 0x32]
cmp dl, cl
jne 0x1010592
cmp esi, 5
jle 0x1010735
mov cl, byte [esp + 0x1b]
cmp cl, al
je 0x1010735
sbb eax, eax
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
mov dword [esp + 0x78], 5
jmp 0x1010735
mov eax, dword [esp + 0x7c]
test ah, 0x10
jne 0x10100e2
mov al, byte [esp + 0x48]
mov edx, dword [esp + 0x78]
cmp al, 6
jne 0x1011da2
jmp 0x10100e6
mov eax, dword [esp + 0x7c]
test ah, 0x10
jne 0x10100ff
cmp cl, 6
je 0x10102ed
cmp edx, 6
jle 0x1011e9a
mov dword [esp + 0x68], 0
mov eax, 1
mov dword [esp + 0x78], 6
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x8c]
test byte [esp + ecx*4], ah
add byte [eax], al
add byte [ebx - 0x76b7fd3f], al
dec esp
and al, 0x10
mov dword [esp + 0x8c], eax
je 0x100fff1
mov edx, dword [esp + 0x2c]
xor eax, eax
mov ax, word [ecx]
mov ebp, dword [edx + eax*4]
mov eax, dword [esp + 0x28]
sub byte [ebx], ah
call 0x1d256f71
jmp 0x100fff1
mov eax, 6
cmp edx, eax
jle 0x1011eb1
mov al, byte [esp + 0x1c]
mov dl, byte [esp + 0x20]
cmp dl, al
je 0x10100ff
sbb eax, eax
mov dword [esp + 0x78], 6
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
mov eax, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x84]
add edi, 2
dec eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x84], eax
je 0x10102b2
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov cx, word [edi]
mov ebx, dword [edx + ecx*4]
and ebx, eax
mov dword [esp + 0x20], ebx
jmp 0x10102b2
mov ebx, dword [esp + 0x80]
mov ebp, 0xffff0000
mov dword [esp + 0x38], ebp
mov esi, 2
lea edx, [edi - 2]
test ebx, ebx
je 0x1011fc4
mov ecx, edi
sub ecx, esi
cmp ecx, ebx
jb 0x1011fc4
mov ebp, dword [esp + 0x2c]
xor ecx, ecx
mov cx, word [edx]
mov ebp, dword [ebp + ecx*4]
mov ecx, dword [esp + 0x28]
and ebp, ecx
xor ecx, ecx
mov dword [esp + 0x38], ebp
mov cl, byte [esp + 0x39]
cmp cl, 3
jb 0x1011f7e
jne 0x1011fc0
mov cl, byte [esp + 0x38]
cmp cl, 1
jbe 0x1011f97
mov esi, dword [esp + 0x34]
xor edx, edx
mov dh, byte [esi + 0x20]
mov dl, cl
mov cl, byte [esp + 0x3b]
and cl, 0x3f
mov word [esp + 0x38], dx
mov bl, cl
mov ebp, dword [esp + 0x38]
and bl, 0xe4
mov dl, cl
mov byte [esp + 0x1a], bl
mov bl, byte [esp + 0x20]
and dl, 0xc6
test bl, bl
mov byte [esp + 0x18], dl
je 0x1011fab
mov ecx, ebp
mov byte [esp + 0x19], 5
and ecx, 0xff87
and al, 0xc5
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x1b], al
jmp 0x101015d
cmp ebp, 0xffff0000
je 0x1011fcd
jmp 0x1010168
test dl, dl
je 0x1011fea
test byte [esp + 0x7c], 2
jne 0x1011fea
mov dword [esp + 0x24], 3
mov dword [esp + 0x78], 2
cmp byte [esp + 0x48], 3
jne 0x1010735
jmp 0x1010185
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0x2c]
mov ebp, 0xffff0000
mov dword [esp + 0x3c], ebp
mov esi, 2
lea edx, [ecx - 2]
test ebx, ebx
je 0x10120a6
mov ecx, dword [esp + 0x10]
sub ecx, esi
cmp ecx, ebx
jb 0x10120a6
xor ecx, ecx
mov cx, word [edx]
mov ebp, dword [edi + ecx*4]
mov ecx, dword [esp + 0x28]
and ebp, ecx
xor ecx, ecx
mov dword [esp + 0x3c], ebp
mov cl, byte [esp + 0x3d]
cmp cl, 3
jb 0x1012065
jne 0x10120a2
mov cl, byte [esp + 0x3c]
cmp cl, 1
jbe 0x101207e
mov esi, dword [esp + 0x34]
xor edx, edx
mov dh, byte [esi + 0x20]
mov dl, cl
mov cl, byte [esp + 0x3f]
and cl, 0x3f
mov word [esp + 0x3c], dx
mov bl, cl
mov ebp, dword [esp + 0x3c]
and bl, 0xe4
mov dl, cl
mov byte [esp + 0x32], bl
mov bl, byte [esp + 0x1c]
and dl, 0xc6
test bl, bl
je 0x1012092
mov ecx, ebp
mov bl, 5
and ecx, 0xff87
and al, 0xc5
mov dword [esp + 0x50], ecx
jmp 0x10101c7
cmp ebp, 0xffff0000
je 0x10120b7
jmp 0x10101d2
test dl, dl
je 0x10120dc
test byte [esp + 0x7c], 2
jne 0x10120dc
mov dword [esp + 0x24], 1
mov dword [esp + 0x78], edi
jmp 0x1010735
test byte [esp + 0x7c], 2
jne 0x10101fd
mov bl, byte [esp + 0x18]
mov dword [esp + 0x78], edi
cmp bl, dl
sbb eax, eax
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
jmp 0x1010735
test byte [esp + 0x7c], 2
jne 0x1010212
cmp cl, bl
mov dword [esp + 0x78], 3
sbb eax, eax
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
jmp 0x1010735
sbb eax, eax
mov dword [esp + 0x78], 4
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
jmp 0x1010735
sbb eax, eax
pop edi
and al, 0xfe
pop esi
pop ebp
add eax, 3
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x101075f
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
jmp 0x101064e
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0x14]
lea eax, [edi - 1]
test eax, eax
je 0x101060b
mov ebx, dword [esp + 0x2c]
xor eax, eax
mov ax, word [ebp + 2]
mov eax, dword [ebx + eax*4]
xor ebx, ebx
mov bl, ah
mov dword [esp + 0x50], eax
cmp bl, 1
je 0x1012149
mov dword [esp + 0x84], edi
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x10107a8
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x10]
dec eax
test eax, eax
je 0x1010645
mov ebx, dword [esp + 0x2c]
xor eax, eax
mov ax, word [edi + 2]
mov eax, dword [ebx + eax*4]
xor ebx, ebx
mov bl, ah
mov dword [esp + 0x50], eax
cmp bl, 1
je 0x1010780
cmp si, cx
jne 0x10107b1
test dl, 1
je 0x10107c9
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, ecx
je 0x1010670
mov edx, dword [esp + 0x6c]
dec edx
mov dword [esp + 0x6c], edx
je 0x101080a
mov eax, dword [esp + 0x58]
cmp eax, ecx
jne 0x1010815
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x8c]
add ebp, 2
add edi, 2
dec ecx
dec eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x84]
test eax, eax
je 0x101000b
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x101000b
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov cx, word [edx]
xor edx, edx
mov dx, word [esi]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov ebp, dword [eax + edx*4]
and ebx, ecx
mov dword [esp + 0x20], ebx
and ebp, ecx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x10118a5
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x21]
mov al, byte [esp + 0x1d]
cmp cl, 0xb
mov byte [esp + 0x44], cl
mov byte [esp + 0x48], al
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebp
jbe 0x100ff3e
cmp al, 0xb
jbe 0x100ff3e
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
cmp cx, ax
jne 0x10105aa
mov dl, byte [esp + 0x7c]
test dl, 2
jne 0x10105ca
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x10105bb
mov eax, dword [esp + 0x54]
movzx si, byte [esp + 0x22]
movzx cx, byte [esp + 0x1e]
test eax, eax
je 0x10105d4
mov ebp, dword [esp + 0x14]
jmp 0x101060b
movzx ax, byte [esp + 0x52]
add ecx, eax
mov eax, dword [esp + 0x8c]
add edi, 2
dec eax
cmp eax, 1
mov dword [esp + 0x8c], eax
jne 0x1010627
jmp 0x1010645
mov edi, dword [esp + 0x10]
jmp 0x1010645
sbb eax, eax
mov dword [esp + 0x78], 0
and al, 0xfe
add eax, 3
mov dword [esp + 0x24], eax
jmp 0x101064e
mov eax, dword [esp + 0x78]
mov esi, 1
cmp eax, esi
jle 0x1010657
mov al, byte [esp + 0x1f]
mov cl, byte [esp + 0x23]
mov dl, al
xor dl, cl
test dl, 0x3f
je 0x1010657
and al, 0x3f
and cl, 0x3f
cmp cl, al
mov dword [esp + 0x78], esi
sbb eax, eax
mov ebp, eax
mov dword [esp + 0x54], ecx
jmp 0x1010670
mov edx, dword [esp + 0x70]
dec edx
mov dword [esp + 0x70], edx
jne 0x101067c
mov edi, eax
mov dword [esp + 0x58], ecx
jmp 0x101067c
test eax, 0x80000000
jne 0x1010038
mov edi, dword [esp + 0x10]
mov ebp, ecx
mov esi, 1
test ebp, ebp
je 0x101218c
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 8]
xor ecx, ecx
xor ebx, ebx
mov cx, word [edi]
mov bl, byte [edx + ecx*4 + 1]
mov ecx, ebx
and ecx, 0xff
cmp ecx, 0xb
jbe 0x1012163
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov edi, dword [esp + 0x14]
mov esi, 3
jmp 0x1010845
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1011979
test byte [esp + 0x23], 0xc0
je 0x1011979
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp dword [edx + 0x14], ecx
je 0x1011a63
mov edx, dword [esp + 0x84]
mov eax, 1
cmp edx, eax
jle 0x1011a56
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
xor edx, edx
mov dx, word [esi + 2]
mov edx, dword [edi + edx*4]
xor edx, ebx
test edx, 0xe7ffffff
jne 0x1011a5a
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x84]
add esi, 2
dec eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x84], eax
and al, 0x84
add byte [eax], al
invalid
mov eax, dword [esp + 0x84]
xor edx, edx
dec eax
je 0x101192f
dec eax
je 0x101192b
mov dx, word [esi + 4]
mov cx, word [esi + 2]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
xor edi, edi
mov esi, dword [esi + 0x18]
mov ax, word [eax]
mov di, word [esi + 4]
test edi, edi
je 0x1011957
cmp word [esi + 6], ax
jbe 0x1011a6c
add esi, 0x10
dec edi
jne 0x1011947
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1011979
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
sub ecx, 2
inc eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x1010708
test byte [esp + 0x1f], 0xc0
je 0x1010708
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp dword [edx + 0x14], ecx
je 0x1011b4c
mov edx, dword [esp + 0x8c]
mov eax, 1
cmp edx, eax
jle 0x1011b3f
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
xor edx, edx
mov dx, word [esi + 2]
mov edx, dword [edi + edx*4]
xor edx, ebp
test edx, 0xe7ffffff
jne 0x1011b43
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x8c]
add esi, 2
dec eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x8c]
xor edx, edx
dec eax
je 0x1011a03
dec eax
je 0x10119ff
mov dx, word [esi + 4]
mov cx, word [esi + 2]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, dword [esi + 0x18]
mov ax, word [eax]
mov di, word [esi + 4]
test edi, edi
invalid
je 0x1011a2b
cmp word [esi + 6], ax
jbe 0x1011b55
add esi, 0x10
dec edi
jne 0x1011a1b
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1010708
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x8c]
test byte [esp + ecx*4], ah
add byte [eax], al
add byte [ebx - 0x76bffd17], al
dec esp
and al, 0x10
mov dword [esp + 0x8c], eax
jmp 0x1010708
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
jmp 0x1011918
mov esi, dword [esp + 0x14]
jmp 0x1011918
test edi, edi
je 0x1011957
cmp word [esi + 6], ax
jne 0x1011957
cmp cx, word [esi + 0xc]
jb 0x1011957
cmp cx, word [esi + 0xe]
ja 0x1011957
mov edi, dword [esp + 0x34]
xor eax, eax
mov ax, word [esi + 8]
mov edi, dword [edi + 0x1c]
lea edi, [edi + eax*8]
cmp al, 0xc7
xor eax, eax
mov ax, word [esi + 0xa]
test eax, eax
je 0x1011957
cmp word [edi], cx
jbe 0x1011ac1
add edi, 8
dec eax
je 0x1011957
jmp 0x1011ab0
test eax, eax
je 0x1011957
cmp word [edi], cx
jne 0x1011957
mov si, word [edi + 2]
test si, si
je 0x1011aec
cmp si, dx
je 0x1011b20
add edi, 8
dec eax
je 0x1011957
jmp 0x1011ac9
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x1011b0e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
add ecx, 2
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], eax
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x28]
and ebx, eax
mov dword [esp + 0x20], ebx
jmp 0x1011957
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x1011b0e
mov ecx, dword [esp + 0x14]
invalid