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

Disassembly:
sub esp, 0xb0
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x48], 0
mov ebx, edx
xor esi, esi
imul ebp, ebx, 0x544
push 0x2c
mov eax, dword [edi]
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0x24]
add ebp, edi
mov dword [esp + 0x84], ecx
push esi
mov dword [esp + 0x68], ebp
lea eax, [ecx + eax*4]
mov dword [esp + 0x98], eax
mov eax, dword [edi + 0xabc]
mov ecx, dword [eax + 0x28]
mov eax, 0x24924925
mul ecx
lea eax, [esp + 0x9c]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
push eax
mov dword [esp + 0x88], ecx
call fcn.1011df10
mov eax, dword [ebp + 0x44]
add esp, 0xc
mov dword [ebp + 0x2c], esi
mov ecx, dword [edi + 0x18]
cdq
xor eax, edx
mov dword [esp + 0xb0], 0x7d00
sub eax, edx
mov byte [esp + 0x94], 0
mov edx, dword [edi + 0x1c]
lea ecx, [ecx + ecx*4]
shl ecx, 3
add ecx, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x88], eax
test ebx, ebx
jne 0x10032c97
cmp edx, ecx
jae 0x10032cb5
nop word [eax + eax]
movsx eax, word [edx + 0xc]
mov dword [edx + 0x18], eax
movsx eax, word [edx + 0xe]
mov dword [edx + 0x1c], eax
add edx, 0x28
cmp edx, ecx
jb 0x10032c80
jmp 0x10032cb5
cmp edx, ecx
jae 0x10032cb5
nop dword [eax + eax]
movsx eax, word [edx + 0xe]
mov dword [edx + 0x18], eax
movsx eax, word [edx + 0xc]
mov dword [edx + 0x1c], eax
add edx, 0x28
cmp edx, ecx
jb 0x10032ca0
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x90]
jae 0x1003354a
nop dword [eax]
mov ebx, dword [eax]
xor ecx, ecx
mov edx, 0xffff8300
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], ecx
xor ebp, ebp
mov ecx, 0x7d00
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 0x24]
mov edi, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x50], ecx
mov al, byte [eax + 3]
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
movsx edx, al
mov ecx, edx
mov dword [esp + 0x3c], ebp
neg ecx
mov dword [esp + 0x24], 0x7d00
test al, al
mov dword [esp + 0x10], 0x7d00
mov dword [esp + 0x44], ebp
cmovns ecx, edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
cmp ecx, dword [esp + 0x74]
jne 0x10032d83
mov al, byte [ebx + 3]
movsx edx, al
mov ecx, edx
neg ecx
test al, al
cmovns ecx, edx
cmp ecx, dword [esp + 0x74]
jne 0x10032d83
mov dword [esp + 0x78], ebx
nop
mov ebx, dword [ebx + 0x24]
mov al, byte [ebx + 3]
movsx edx, al
mov ecx, edx
neg ecx
test al, al
cmovns ecx, edx
cmp ecx, dword [esp + 0x74]
jne 0x10032d80
cmp ebx, dword [esp + 0x78]
jne 0x10032d60
jmp 0x10032d83
mov ebx, dword [ebx + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x33], 0
movzx edx, ax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x100331e7
mov ecx, dword [ebx + 0x18]
mov edx, ecx
cmp ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
cmovge edx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x24], edx
cmovle ecx, dword [esp + 0x34]
cmp dword [ebx + 0x1c], ebp
mov eax, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
movzx eax, ax
mov dword [esp + 0x4c], edx
movzx edx, word [ebx]
mov ecx, edx
cmovge ecx, eax
movzx eax, cx
mov ecx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
cmp eax, ebp
cmovge eax, ebp
cmp dword [ebx + 0x1c], edi
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
movzx eax, ax
cmovle ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, edi
movzx ecx, cx
mov dword [esp + 0x20], ecx
cmovle eax, edi
mov edi, eax
test dl, 3
jne 0x10032e49
mov eax, dword [ebx + 0x1c]
cmp eax, dword [esp + 0x28]
cmovge eax, dword [esp + 0x28]
mov edx, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], edx
cmp eax, dword [esp + 0x18]
jle 0x10032e4d
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
jmp 0x10032e4d
mov edx, dword [esp + 0x28]
movsx eax, byte [ebx + 3]
cmp eax, dword [esp + 0x88]
jne 0x10032e76
mov eax, dword [esp + 0x2c]
movzx ecx, cx
movzx eax, ax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], eax
cmp ebx, dword [esp + 0x78]
jne 0x1003351c
test ebp, ebp
je 0x10033124
mov eax, dword [ebp + 0x28]
cmp dword [esi + 0x24], eax
jne 0x10033124
mov al, byte [eax + 2]
cmp al, byte [ebx + 2]
jne 0x10032fb9
mov edx, dword [esp + 0x50]
mov ecx, edx
cmp edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
cmovge ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x38]
mov esi, ecx
cmp ecx, dword [esp + 0x14]
movzx ecx, ax
cmovle esi, dword [esp + 0x14]
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
movzx eax, ax
cmovge ecx, eax
mov dword [esp + 0x34], esi
movzx edx, cx
mov ecx, dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
cmp eax, ecx
cmovge eax, ecx
cmp dword [esp + 0x5c], edi
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
movzx ecx, ax
mov eax, dword [esp + 0x20]
movzx eax, ax
cmovle ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
cmovle eax, edi
mov edi, eax
mov eax, dword [esp + 0x64]
cmp eax, ecx
cmovge eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x68]
mov ebp, eax
mov dword [esp + 0x28], ecx
cmp ebp, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
cmovle eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [ebp + 0x28], ebx
sar eax, 1
mov word [ebp + 2], ax
mov eax, esi
sub eax, dword [esp + 0x24]
sar eax, 1
mov word [ebp + 4], ax
mov al, byte [esp + 0x14]
or al, dl
test al, 3
je 0x10032f77
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp eax, dword [esp + 0x7c]
jge 0x10032f77
or byte [ebp], 1
jmp 0x10032f7b
and byte [ebp], 0xfe
mov edx, dword [esp + 0x10]
movzx eax, di
mov word [ebp + 8], ax
movzx ecx, dx
sub eax, ecx
mov word [ebp + 6], cx
mov word [ebp + 0xa], ax
mov eax, dword [esp + 0x4c]
movzx esi, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
movzx esi, ax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], esi
dec dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
jmp 0x100331dd
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
cdq
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x10]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x1003302e
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp ecx, esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmovl esi, ecx
cmp edx, eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x24], ecx
mov ecx, edx
cmovg eax, edx
mov dword [ebp + 0x28], ebx
mov dword [esp + 0x38], eax
add eax, esi
sar eax, 1
mov word [ebp + 2], ax
mov eax, dword [esp + 0x38]
sub eax, esi
mov dword [esp + 0x34], ecx
sar eax, 1
mov word [ebp + 4], ax
mov eax, dword [esp + 0x20]
movzx esi, ax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], esi
jmp 0x10033105
mov ecx, dword [esp + 0x50]
mov edx, ecx
cmp ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
cmovge edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
mov dword [esp + 0x24], edx
cmovle ecx, eax
mov dword [esi + 0x28], ebx
mov dword [esp + 0x34], ecx
lea eax, [ecx + edx]
sar eax, 1
mov word [esi + 2], ax
mov eax, ecx
sub eax, edx
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x20]
or al, byte [esp + 0x2c]
test al, 3
je 0x10033085
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x7c]
jge 0x10033085
or byte [esi], 1
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov word [esi + 6], cx
movzx eax, di
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 0xa], ax
movups xmm0, xmmword [esi]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
movups xmmword [ebp], xmm0
mov dword [esp + 0x5c], edi
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebp + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [ebp + 0x20], xmm0
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
movzx esi, ax
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x20]
movzx edx, si
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
movzx edx, si
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x10]
movzx eax, ax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], edx
dec dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
jmp 0x100331dd
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x28], ebx
lea eax, [ecx + ebp]
sar eax, 1
mov word [esi + 2], ax
mov eax, ebp
sub eax, ecx
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x20]
or al, byte [esp + 0x2c]
test al, 3
je 0x1003315d
mov eax, dword [esp + 0x18]
sub eax, edx
cmp eax, dword [esp + 0x7c]
jge 0x1003315d
or byte [esi], 1
mov eax, dword [esp + 0x10]
movzx ecx, ax
movzx eax, di
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 0xa], ax
mov eax, dword [esp + 0x4c]
mov word [esi + 6], cx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
movzx esi, si
movzx eax, ax
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x18]
movzx esi, si
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movzx eax, ax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], 0
xor esi, esi
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x84], ebp
movzx ebp, cx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x2c], ebp
movzx ebp, cx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x40]
movzx ebp, bp
movzx eax, ax
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x14], eax
cmp ebx, dword [esp + 0x78]
jne 0x100332d2
cmp byte [esp + 0x33], 0
jne 0x10033528
cmp dword [esp + 0x84], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
movzx eax, ax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
movzx eax, cx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x20]
movzx ecx, ax
mov eax, dword [esp + 0x2c]
movzx eax, ax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], edx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
mov byte [esp + 0x33], 1
jne 0x10033518
mov dl, byte [ebx + 3]
movsx ecx, dl
mov eax, ecx
mov byte [esp + 0x5b], dl
neg eax
test dl, dl
cmovns eax, ecx
cmp eax, dword [esp + 0x74]
je 0x100332f4
cmp ebx, dword [ebx + 0x24]
jne 0x10033518
mov dword [esp + 0x88], ecx
xor esi, esi
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], 0
mov edx, dword [ecx + 0x2c]
cmp edx, 0x12
jge 0x1003332c
cmp dword [ecx + 0x34], esi
jne 0x10033434
lea eax, [ecx + 0x48]
mov dword [ecx + 0x30], 0x12
mov dword [ecx + 0x34], eax
jmp 0x10033434
mov edi, dword [ecx + 0x30]
cmp edx, edi
jl 0x10033434
cmp edi, 0x2e8ba2e
jge 0x100335a9
mov eax, edi
lea ebp, [edi + 4]
sar eax, 2
add ebp, eax
cmp ebp, edi
jl 0x10033359
cmp ebp, 0x2e8ba2e
jle 0x1003335e
mov ebp, 0x2e8ba2e
mov eax, dword [ecx + 0x34]
lea edx, [ecx + 0x48]
cmp eax, edx
mov dword [esp + 0x14], esi
mov edx, 0x2c
jne 0x100333cc
mov ecx, dword [esp + 0x8c]
lea eax, [esp + 0x14]
push eax
push 0
push ebp
push 0
call fcn.1003b010
mov edx, dword [esp + 0x14]
mov edi, eax
mov dword [esp + 0x48], edx
test edx, edx
jne 0x100333af
test edi, edi
je 0x100333af
test ebp, ebp
jle 0x100333af
imul eax, ebp, 0x2c
push eax
push edx
push edi
call fcn.1011df10
mov edx, dword [esp + 0x54]
add esp, 0xc
mov eax, dword [esp + 0x60]
mov dword [eax + 0x34], edi
test edx, edx
jne 0x100335b9
mov ecx, 0xc6
lea esi, [eax + 0x48]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x1003342e
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x90]
push eax
push ebp
push edi
call fcn.1003b010
mov edx, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x48], edx
test edx, edx
jne 0x10033418
test ecx, ecx
je 0x10033418
cmp ebp, edi
jle 0x10033418
mov eax, ebp
sub eax, edi
imul eax, eax, 0x2c
push eax
imul eax, edi, 0x2c
push edx
add eax, ecx
push eax
call fcn.1011df10
mov edx, dword [esp + 0x54]
add esp, 0xc
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x34], eax
test edx, edx
jne 0x100335b9
mov edx, dword [ecx + 0x2c]
mov dword [ecx + 0x30], ebp
imul esi, edx, 0x2c
lea eax, [edx + 1]
mov edx, dword [esp + 0x48]
mov dword [ecx + 0x2c], eax
add esi, dword [ecx + 0x34]
test edx, edx
jne 0x100335b9
movups xmm0, xmmword [esp + 0x94]
mov ecx, dword [esp + 0x44]
lea ebp, [esi - 0x2c]
mov al, byte [esp + 0x5b]
test ecx, ecx
movups xmmword [esi], xmm0
cmove ebp, ecx
movups xmm0, xmmword [esp + 0xa4]
mov dword [esp + 0x44], ebp
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0xb4]
movq qword [esi + 0x20], xmm0
mov byte [esi + 1], al
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
movzx eax, word [ebx]
mov edx, dword [ebx + 0x18]
mov ecx, eax
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x40], ecx
movzx ecx, cx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], ecx
test al, 3
je 0x100334c7
mov ecx, 0x7d00
mov dword [esp + 0x18], 0xffff8300
mov dword [esp + 0x28], ecx
jmp 0x100334d1
mov eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov ecx, 1
mov dword [esp + 0x3c], ecx
cmp ebx, dword [ebx + 0x24]
jne 0x1003350c
mov word [esi + 2], dx
test byte [ebx], 3
je 0x100334ea
or byte [esi], cl
movzx eax, word [ebx + 0x1c]
xor ecx, ecx
mov word [esi + 6], ax
movzx eax, word [ebx + 0x1c]
mov word [esi + 8], ax
xor eax, eax
mov word [esi + 0xa], ax
xor esi, esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], ebp
mov eax, dword [esp + 0x1c]
mov ebx, dword [ebx + 0x20]
jmp 0x10032d92
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [ebx + 0x20]
jmp 0x10032d92
mov eax, dword [esp + 0x80]
add eax, 4
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x90]
jb 0x10032cd0
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp + 0x34]
test esi, esi
je 0x100335ea
imul ecx, dword [ebp + 0x2c], 0x2c
lea eax, [ecx + esi]
cmp esi, eax
jae 0x100335ea
dec ecx
mov eax, 0xba2e8ba3
mul ecx
add esi, 0xa
mov ebx, edx
shr ebx, 5
inc ebx
mov eax, dword [esi + 0x1a]
mov edi, dword [esi + 0x1e]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
mov ecx, dword [edi + 0x1c]
mov eax, dword [eax + 0x1c]
cmp edx, ecx
jge 0x100335c6
cmp eax, edx
jge 0x10033596
sub edx, eax
sar edx, 1
add word [esi], dx
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, ecx
jle 0x100335e2
sub eax, ecx
sar eax, 1
add word [esi], ax
jmp 0x100335e2
pop edi
pop esi
pop ebp
mov eax, 0x40
pop ebx
add esp, 0xb0
ret
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xb0
ret
cmp eax, edx
jle 0x100335d1
sub eax, edx
sar eax, 1
add word [esi], ax
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, ecx
jge 0x100335e2
sub ecx, eax
sar ecx, 1
add word [esi], cx
add esi, 0x2c
sub ebx, 1
jne 0x10033575
mov eax, dword [esp + 0x48]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret