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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
mov ebp, dword [esp + 0x3c]
push esi
push edi
lea eax, [ebp + 0xe0]
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0xfd0]
mov esi, dword [eax]
mov dword [esp + 0x18], esi
mov al, byte [esi + 0x9f]
test al, al
js 0x102250d9
cmp byte [esi + 0x14], 0
mov dword [esp + 0x1c], 0
jle 0x102250e1
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x40]
mov ebx, 0x10
movzx eax, byte [esp + 0x64]
and eax, 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], eax
mov edx, dword [edi]
movzx eax, byte [edi + 0x6d660]
mov al, byte [eax + edx + 0x100]
mov byte [esp + 0x13], al
movzx eax, al
imul ecx, eax, 0x13
mov eax, dword [esp + 0x5c]
movzx eax, al
add ecx, eax
lea eax, [edx + 0x10c68]
shl ecx, 6
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x1022515e
cmp dword [ebp + 0x23b48], ecx
jne 0x10225168
cmp byte [ebp + 0x1b5e4], 1
jne 0x102252b1
xor eax, eax
movzx ebx, bl
cmp dword [esp + 0x48], eax
cmove ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x102252b1
mov eax, dword [ebp + 0x23b4c]
test eax, eax
jne 0x102251af
mov al, byte [esi + 0x9f]
test al, al
js 0x102251bf
cmp byte [esi + 0x14], 0
jg 0x102251bf
mov edx, dword [esp + 0x28]
movzx eax, al
and eax, 7
cmp dword [edx + eax*4 + 0x1a9c], 0
jne 0x102251bf
cmp byte [esp + 0x5c], 3
jae 0x102251bf
cmp dword [edi + 0x91554], 0
jne 0x102251bf
movzx eax, byte [esi + 5]
mov bl, byte [eax + 0x108b6c44]
mov dword [esp + 0x14], ebx
jmp 0x102252b1
cmp eax, 0x7fffffff
je 0x1022513c
mov ebp, dword [esp + 0x24]
cmp dword [ebp], eax
jle 0x102251ca
xor bl, bl
mov dword [esp + 0x14], ebx
jmp 0x102252b1
xor ebx, ebx
mov dword [esp + 0x64], 0
add eax, 0x64
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], eax
mov eax, 1
mov dword [esp + 0x20], eax
nop dword [eax + eax]
mov esi, dword [ebp + eax*4]
lea ecx, [eax + 2]
mov edx, dword [ebp + eax*4 + 4]
cmp esi, ebx
mov ebp, dword [ebp + ecx*4]
mov edi, esi
cmovle edi, ebx
mov ebx, edx
cmp edx, edi
cmovle ebx, edi
cmp esi, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
cmovle eax, dword [esp + 0x64]
inc esi
cmp edx, edi
mov dword [esp + 0x30], ebx
mov edx, esi
mov dword [esp + 0x64], esi
cmovle edx, eax
cmp ebp, ebx
cmovle ebp, ebx
cmovg edx, ecx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [ebx + 3]
mov ecx, dword [ecx + eax*4]
cmp ecx, ebp
cmovle ecx, ebp
cmovg edx, eax
mov ebp, dword [esp + 0x24]
lea eax, [ebx + 4]
mov ebx, dword [ebp + eax*4]
cmp ebx, ecx
cmovg edx, eax
cmovle ebx, ecx
mov eax, dword [esp + 0x20]
add eax, 5
mov dword [esp + 0x64], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], eax
cmp eax, 0x10
jl 0x102251f0
cmp ebx, dword [esp + 0x34]
jle 0x10225285
mov bl, dl
mov dword [esp + 0x14], ebx
jmp 0x102252a5
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x1b5e4], 1
jne 0x102252a1
cmp dword [esp + 0x48], 0
jne 0x102252a1
xor bl, bl
mov dword [esp + 0x14], ebx
jmp 0x102252a5
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x5c]
movzx ebp, dl
mov al, byte [ebp + 0x108b61d8]
cmp al, 3
jbe 0x102252c6
xor al, al
jmp 0x102252f1
jne 0x102252cc
mov al, cl
jmp 0x102252f1
cmp byte [edi + 0x3adb1], 0
je 0x102252de
test ecx, ecx
sete al
inc al
jmp 0x102252f1
xor eax, eax
cmp byte [ebp + 0x108b61c4], 2
sete al
mov al, byte [eax + ecx*2 + 0x108b6e34]
cmp dword [esp + 0x48], 0
mov byte [esp + 0x20], al
mov byte [esp + 0x64], 0
je 0x1022532e
movzx eax, byte [edi + 0x3adb1]
push eax
push edx
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push 1
push dword [esp + 0x3c]
call fcn.10220430
mov edx, dword [esp + 0x74]
mov bl, al
add esp, 0x18
mov dword [esp + 0x14], ebx
mov byte [esp + 0x64], bl
cmp byte [esi + 0x53], 0
je 0x10225340
movzx ecx, byte [esi + 0x52]
mov cl, byte [ecx + 0x108b6314]
jmp 0x10225343
mov cl, byte [esi + 5]
mov ebp, dword [edi + 0x5cfdc]
mov al, byte [esp + 0x20]
test ebp, ebp
je 0x10225362
cmp al, 3
jne 0x10225362
movzx eax, cl
movzx eax, word [eax*2 + 0x108b6e0c]
jmp 0x1022536d
movzx eax, al
movzx eax, word [eax*2 + 0x108b6e28]
cmp ebp, 2
mov dword [esp + 0x18], eax
mov bp, ax
jne 0x10225389
movzx eax, cl
and bp, word [eax*2 + 0x108b6df0]
mov word [esp + 0x18], bp
movzx eax, byte [esi + 0x9f]
mov ecx, dword [esp + 0x28]
and eax, 7
cmp dword [ecx + eax*4 + 0x1a9c], 0
jne 0x102253ce
movzx eax, dl
cmp byte [eax + 0x108b61d8], 3
ja 0x102253ce
cmp bp, 1
je 0x102253ce
cmp dword [esp + 0x1c], 0
je 0x102253c5
cmp byte [edi + 0x3ee41], 0
jne 0x102253ce
jmp 0x102253d4
cmp byte [edi + 0x3ee40], 0
je 0x102253d4
xor bl, bl
mov dword [esp + 0x14], ebx
cmp byte [edi + 0x3ee3d], 0
mov eax, dword [esp + 0x18]
jne 0x102253eb
and eax, 0xf
mov dword [esp + 0x18], eax
mov bp, ax
movzx ecx, bp
cmp bl, 0x10
jae 0x1022540a
mov edi, 1
mov cl, bl
mov eax, edi
shl ax, cl
and ax, bp
movzx esi, ax
jmp 0x10225626
cmp dword [esp + 0x38], 0
je 0x1022541e
mov esi, eax
and esi, 0xc01
jmp 0x10225621
mov eax, dword [edi + 0x5cfec]
xor ebx, ebx
movzx esi, bp
mov edx, ecx
mov dword [esp + 0x28], esi
test eax, eax
je 0x102254c3
lea ecx, [eax*8]
xor edi, edi
sub ecx, eax
xor edx, edx
movzx eax, byte [esp + 0x13]
or ebx, 0xffffffff
add ecx, eax
mov dword [esp + 0x2c], edx
lea edx, [edi + 1]
mov eax, dword [ecx*4 + 0x108b7364]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov esi, dword [eax + ecx*4]
cmp esi, ebx
jle 0x1022547a
movzx eax, bp
test edx, eax
je 0x1022547a
mov ebx, esi
mov dword [esp + 0x2c], ecx
cmp esi, dword [esp + 0x38]
jge 0x10225489
movzx eax, di
bts eax, ecx
movzx edi, ax
inc ecx
rol edx, 1
cmp ecx, 0x10
jl 0x10225462
mov edx, dword [esp + 0x2c]
mov eax, edi
mov cx, dx
mov ebx, 0
shr ax, cl
test al, 1
je 0x102254af
movzx eax, di
btr eax, edx
movzx edi, ax
not edi
and edi, dword [esp + 0x18]
movzx esi, di
movzx edx, di
mov edi, dword [esp + 0x40]
mov dword [esp + 0x28], esi
mov ecx, 1
movzx ebp, dx
lea edx, [ecx + 0xf]
nop
test ebp, ecx
lea eax, [ebx + 1]
cmove eax, ebx
rol ecx, 1
mov ebx, eax
sub edx, 1
jne 0x102254d0
cmp ebx, 2
jle 0x102255c7
cmp dword [edi + 0x5cff0], edx
je 0x102255c7
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x23b50]
mov ebp, dword [eax*4 + 0x108b62d0]
mov edx, dword [eax*4 + 0x108b62e4]
movzx eax, byte [edi + 0x3adb1]
mov dword [esp + 0x40], eax
cmp ebx, 7
jg 0x10225561
push eax
push dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
push ebp
push esi
push dword [esp + 0x84]
push dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push eax
push dword [esp + 0x7c]
push dword [esp + 0x70]
push dword [esp + 0x70]
push ecx
push edi
call fcn.10226f70
not ax
add esp, 0x34
and ax, si
movzx eax, ax
movzx esi, ax
jmp 0x1022561d
imul edx, ebx
mov eax, 0x51eb851f
add edx, 0x32
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [esp + 0x70]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x70]
push dword [esp + 0x4c]
push dword [esp + 0x70]
push ebp
push esi
push dword [esp + 0x90]
push dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push eax
push dword [esp + 0x88]
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push ecx
push edi
call fcn.10227220
not ax
add esp, 0x40
and ax, si
movzx eax, ax
movzx esi, ax
jmp 0x1022561d
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 0x23b50]
cmp edx, 1
jl 0x1022561d
cmp dword [esp + 0x1c], 0
je 0x1022561d
xor eax, eax
cmp edx, 4
setl al
lea eax, [eax*4 + 1]
cmp ebx, eax
jle 0x1022561d
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x78]
mov eax, dword [esp + 0x5c]
push edx
push dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x64]
push eax
push dword [esp + 0x74]
push dword [esp + 0x74]
push ecx
call fcn.10226ac0
mov esi, dword [esp + 0x4c]
add esp, 0x24
mov ebx, dword [esp + 0x14]
mov edi, 1
test si, si
jne 0x1022564f
movzx eax, byte [esp + 0x64]
xor edx, edx
cmp dword [esp + 0x48], edx
cmovne edx, eax
mov cl, dl
shl di, cl
mov ecx, dword [esp + 0x70]
movzx eax, di
pop edi
pop esi
pop ebp
mov byte [ecx], dl
pop ebx
add esp, 0x2c
ret
mov ecx, dword [esp + 0x70]
mov ax, si
pop edi
pop esi
pop ebp
mov byte [ecx], bl
pop ebx
add esp, 0x2c
ret