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

Disassembly:
mov eax, 0x17f0
call fcn.1007e490
mov eax, dword [esp + 0x17f4]
push ebx
push ebp
push esi
test eax, eax
push edi
mov dword [esp + 0x14], 0
je 0x100839a7
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x100839a7
mov ecx, dword [esp + 0x1808]
test ecx, ecx
je 0x100839a7
mov ebx, dword [esp + 0x180c]
test ebx, ebx
je 0x100839a7
mov ebp, dword [ecx]
test ebp, ebp
je 0x100839a7
mov edi, dword [ecx + 4]
test edi, edi
jbe 0x100839a7
mov esi, dword [ebx]
test esi, esi
je 0x100839a7
mov ecx, dword [ebx + 4]
test ecx, ecx
jbe 0x100839a7
mov edx, dword [esp + 0x1810]
test edx, edx
je 0x100829c8
cmp edx, dword [eax + 0xc]
jle 0x100829d2
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1810], edx
cmp dword [eax + 8], edx
jg 0x10083988
mov ebx, dword [eax + 0x74]
test ebx, ebx
jbe 0x100829eb
cmp dword [eax + 0x58], edx
jg 0x10083981
add edi, ebp
lea edx, [ecx + esi]
mov dword [esp + 0x44], edi
mov edi, dword [eax + 0x3c]
mov ecx, eax
mov dword [esp + 0x18], ebp
sub ecx, edi
mov edi, 1
sub ecx, 0x114
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x80]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x64]
test ecx, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], 0
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
jbe 0x10082a6e
cmp dword [eax + 0x68], 0xffffffff
mov dword [esp + 0x94], ecx
je 0x10082a67
mov dword [esp + 0xb4], ebp
add ebp, ecx
mov dword [esp + 0x18], ebp
jmp 0x10082a85
mov ecx, dword [eax + 0x5c]
add ecx, ebp
jmp 0x10082a7e
xor ecx, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb4], ecx
test ebx, ebx
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb8], edi
mov dword [esp + 0xa4], 0
jbe 0x10082af8
mov ecx, dword [eax + 0x70]
add ecx, esi
sub edx, ecx
cmp edx, ebx
jge 0x10082ab7
mov dword [esp + 0x14], 0x82010407
jmp 0x10082af8
mov eax, ebx
sub eax, 2
je 0x10082aed
sub eax, 2
je 0x10082ae2
sub eax, 4
je 0x10082ad3
mov dl, byte [esp + 0x1810]
mov byte [ecx], dl
jmp 0x10082af8
mov eax, dword [esp + 0x1810]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10082af8
mov eax, dword [esp + 0x1810]
mov dword [ecx], eax
jmp 0x10082af8
mov dx, word [esp + 0x1810]
mov word [ecx], dx
mov eax, dword [esp + 0x14]
test eax, 0x80000000
je 0x10082b24
mov edx, dword [esp + 0x180c]
xor ecx, ecx
pop edi
pop esi
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x1800]
pop ebp
pop ebx
mov dword [edx + 4], ecx
add esp, 0x17f0
ret
xor eax, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], eax
mov esi, edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10082d20
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], 0
mov edi, dword [ecx + 0x14]
test edi, edi
jbe 0x10082c9d
mov ebx, dword [ecx + 0x30]
mov eax, ebp
sub eax, ebx
cdq
mov ebx, eax
mov eax, edi
sub eax, 2
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edx
je 0x10082c91
sub eax, 2
je 0x10082c67
sub eax, 4
je 0x10082b8f
mov eax, dword [ecx + 0x34]
mov byte [eax], bl
jmp 0x10082c9d
mov edi, edx
mov ecx, 0x10
mov eax, ebx
xor esi, esi
and edi, 0xff0000
call fcn.100a0ca0
or esi, eax
or edi, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.100a0ca0
mov esi, dword [esp + 0x64]
xor ecx, ecx
mov edi, esi
or eax, ecx
and edi, 0xff00
mov ecx, 0x10
or edx, edi
call fcn.100a0ca0
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.100a0ca0
mov edi, eax
mov ecx, 0x10
mov dword [esp + 0x24], edi
mov edi, edx
mov eax, ebx
mov edx, esi
call fcn.100a0c80
xor ecx, ecx
and ebx, 0xff00
or edx, ecx
or eax, ebx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x60]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x60]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
or esi, eax
or edi, edx
mov edx, dword [ecx + 0x34]
mov dword [edx], esi
mov esi, dword [esp + 0x34]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x28]
jmp 0x10082ca1
mov eax, ebx
mov edx, ebx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ebx
shl edx, 0x10
and ebx, 0xff00
or edx, ebx
shr eax, 8
shl edx, 8
or eax, edx
mov edx, dword [ecx + 0x34]
mov dword [edx], eax
jmp 0x10082c9d
mov edx, dword [ecx + 0x34]
xor eax, eax
mov al, bh
mov ah, bl
mov word [edx], ax
mov edi, dword [esp + 0x28]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x10082cde
cmp ebp, dword [esp + 0x44]
ja 0x100838b9
mov eax, dword [ecx + 0x14]
test eax, eax
jbe 0x10082cde
mov eax, dword [ecx + 0x18]
test eax, eax
jge 0x10082cd1
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x34], ebp
sub ebp, eax
mov dword [esp + 0x18], ebp
mov dword [ecx + 0x30], ebp
jmp 0x10082cde
mov edx, dword [ecx + 0x18]
mov eax, ebp
add eax, edx
mov dword [ecx + 0x30], ebp
mov dword [ecx + 0x34], eax
cmp esi, 1
jle 0x10082d28
mov eax, dword [ecx + 4]
test byte [eax + 0x44], 4
je 0x10082d06
mov edx, dword [eax + 0x18]
mov eax, dword [ecx - 0x98]
add eax, edx
mov dword [ecx - 0x98], eax
mov dword [ecx + 0x24], 0
jmp 0x10082d28
mov eax, dword [edi + 0x1c]
mov edx, dword [ecx - 0x98]
add edx, eax
mov dword [ecx - 0x98], edx
mov dword [ecx + 0x24], 0
jmp 0x10082d28
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0xc]
test eax, eax
jg 0x10082d8a
sub ecx, 0xbc
dec esi
test esi, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
jle 0x100838eb
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [eax + 0x10]
test edx, edx
je 0x10082d6c
mov edi, dword [ecx + 0x10]
inc edi
mov dword [ecx + 0x10], edi
mov edx, edi
cmp edx, dword [eax + 0x2c]
jl 0x100838ab
mov dword [ecx + 0x10], 0
mov edx, dword [ecx + 0xc]
dec edx
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x1c]
mov eax, dword [ecx + 0x28]
add eax, edx
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x100838ab
mov edx, dword [ecx + 0x10]
lea eax, [edx + edx*4]
lea eax, [eax + eax*8]
mov ebx, dword [edi + eax*4 + 0xbc]
lea esi, [edi + eax*4 + 0xb8]
mov eax, dword [esp + 0x1810]
mov dword [esp + 0x2c], esi
cmp ebx, eax
jle 0x10082dd1
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10082dde
lea eax, [edx + 1]
mov edx, dword [edi + 0x2c]
mov dword [ecx + 0x10], eax
cmp eax, edx
jl 0x100838ab
mov dword [ecx + 0x10], 0
jmp 0x10082dde
test byte [esi + 0x44], 2
je 0x10082dfc
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x10082db7
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x28]
dec edx
mov dword [ecx + 0xc], edx
mov edx, dword [edi + 0x1c]
add eax, edx
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x100838ab
mov eax, dword [esi + 0x58]
test eax, eax
jbe 0x10082e4d
mov edx, dword [esi + 0x5c]
mov ebx, dword [ecx + 0x28]
add edx, ebx
sub eax, 2
je 0x10082e3f
sub eax, 2
je 0x10082e34
sub eax, 4
je 0x10082e27
xor eax, eax
mov al, byte [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x10082e50
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x10082e50
mov eax, dword [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x10082e50
xor eax, eax
mov ax, word [edx]
cdq
mov dword [esp + 0x54], edx
mov ebx, eax
jmp 0x10082e50
mov ebx, dword [esi + 0x24]
test ebx, ebx
mov dword [esp + 0x40], ebx
jl 0x100838dd
mov eax, dword [esi + 0x24]
cmp eax, ebx
jge 0x10082e6b
test eax, eax
jg 0x100838dd
test ebx, ebx
jg 0x10082e9d
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x10082e94
mov esi, dword [ecx + 0xc]
mov eax, dword [edi + 0x1c]
mov edx, dword [ecx + 0x28]
dec esi
add edx, eax
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x28], edx
mov ecx, dword [ecx + 0x38]
mov dword [esp + 0x1c], ecx
jmp 0x100838ab
mov eax, dword [ecx + 0x10]
inc eax
jmp 0x10082dba
mov eax, dword [ecx + 0x28]
mov edx, dword [esi + 0x2c]
add edx, eax
mov al, byte [esi + 0x44]
test al, 4
mov dword [esp + 0x10], edx
je 0x10082ed7
mov eax, dword [esi + 8]
mov edx, dword [edx]
cmp eax, 1
mov dword [esp + 0x10], edx
jle 0x10082ec5
mov eax, dword [esi + 0x14]
add eax, edx
jmp 0x10082eda
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 0x5c]
mov eax, dword [eax + edi + 0x130]
add eax, edx
jmp 0x10082eda
mov eax, dword [ecx + 0x2c]
mov edi, dword [esi + 8]
mov dword [esp + 0x38], eax
cmp edi, 1
jle 0x100835be
sub edi, 0x15
je 0x10083319
dec edi
je 0x100830f3
mov ecx, dword [esi + 0x18]
imul ecx, ebx
add ecx, edx
cmp ecx, eax
jbe 0x10082f13
mov dword [esp + 0x14], 0x82010407
jmp 0x1008351c
mov esi, dword [esi + 0x1c]
mov ecx, dword [esp + 0x44]
mov eax, esi
imul eax, ebx
add eax, ebp
cmp eax, ecx
ja 0x10083514
dec esi
je 0x100830a2
dec esi
je 0x1008307d
sub esi, 2
je 0x1008303f
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov ebx, esi
mov ecx, 0x10
mov edx, esi
mov dword [esp + 0x78], eax
xor edi, edi
and ebx, 0xff0000
call fcn.100a0ca0
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.100a0ca0
mov edi, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.100a0ca0
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.100a0ca0
mov edi, dword [esp + 0x78]
mov ebx, eax
mov dword [esp + 0x38], ebx
mov ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.100a0c80
xor ecx, ecx
and edi, 0xff00
or edx, ecx
or eax, edi
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x78]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x78]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov ecx, dword [esp + 0x38]
or ebx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
mov dword [ebp + 4], ebx
add ebp, 8
add ecx, 8
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
jne 0x10082f48
mov dword [esp + 0x18], ebp
jmp 0x1008351c
mov eax, dword [edx]
add ebp, 4
mov ecx, eax
mov esi, eax
and ecx, 0xff0000
add edx, 4
shr esi, 0x10
or ecx, esi
mov esi, eax
shl esi, 0x10
and eax, 0xff00
or esi, eax
shr ecx, 8
shl esi, 8
or ecx, esi
dec ebx
mov dword [ebp - 4], ecx
jne 0x1008303f
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x1008351c
mov esi, ebx
mov ax, word [edx]
xor ecx, ecx
mov cl, ah
add ebp, 2
mov ch, al
add edx, 2
mov word [ebp - 2], cx
dec esi
jne 0x1008307f
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x1008351c
cmp ebx, 0x40
jg 0x100830ce
test ebx, ebx
jbe 0x1008351c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
mov byte [ebp], dl
inc ebp
inc eax
dec ecx
jne 0x100830b7
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebp
jmp 0x1008351c
mov ecx, ebx
mov esi, edx
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add edx, ebx
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ebp
jmp 0x1008351c
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x10083110
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov esi, dword [esp + 0x10]
mov edi, eax
push edi
push esi
mov dword [esp + 0x28], eax
call fcn.10087380
lea ebx, [eax + eax + 2]
add esp, 8
cmp ebx, edi
mov dword [esp + 0x50], ebx
jg 0x1008350a
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x44]
sub edx, ebp
lea ecx, [eax + ebx]
cmp edx, ecx
jl 0x10083514
sub eax, 2
je 0x1008329b
sub eax, 2
je 0x10083270
sub eax, 4
je 0x1008316b
mov byte [ebp], bl
jmp 0x100832a5
mov eax, ebx
mov ecx, 0x10
cdq
mov edi, eax
mov eax, ebx
and eax, 0xff00
mov esi, edx
cdq
mov ebp, eax
mov eax, edi
mov dword [esp + 0x3c], ebp
mov ebp, edx
mov edx, esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
call fcn.100a0c80
mov edi, dword [esp + 0x3c]
or ebp, edx
or edi, eax
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.100a0c80
mov edi, eax
mov eax, ebx
and eax, 0xff0000
mov ebp, edx
cdq
or edi, eax
or ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.100a0c80
mov edi, dword [esp + 0x68]
xor ebx, ebx
mov ecx, edi
or edx, ebx
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov ebx, eax
mov ecx, 0x10
mov dword [esp + 0x3c], ebx
mov ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, esi
mov eax, edi
mov edx, esi
xor ebp, ebp
and ebx, 0xff0000
call fcn.100a0ca0
or ebp, eax
or ebx, edx
mov ecx, 0x10
mov eax, ebp
mov edx, ebx
call fcn.100a0ca0
mov edi, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.100a0ca0
xor ecx, ecx
and esi, 0xff
or eax, ecx
or edx, esi
mov ecx, 8
call fcn.100a0ca0
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x58]
or eax, edx
mov dword [ebp], ecx
mov dword [ebp + 4], eax
mov ebx, dword [esp + 0x50]
jmp 0x100832a5
mov ecx, ebx
mov edx, ebx
and ecx, 0xff0000
mov eax, ebx
shr edx, 0x10
or ecx, edx
mov edx, ebx
shl eax, 0x10
and edx, 0xff00
or eax, edx
shr ecx, 8
shl eax, 8
or ecx, eax
mov dword [ebp], ecx
jmp 0x100832a5
xor eax, eax
mov al, bh
mov ah, bl
mov word [ebp], ax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x50]
add ebp, edx
cmp ebx, 0x40
mov dword [esp + 0x18], ebp
ja 0x100832cd
test ebx, ebx
jbe 0x100832f7
mov eax, ebx
mov dl, byte [esi]
mov byte [ebp], dl
inc ebp
inc esi
dec eax
jne 0x100832bd
mov dword [esp + 0x18], ebp
jmp 0x100832f7
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, ecx
mov esi, eax
mov edi, ebp
add eax, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], eax
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebp
mov esi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
sub edi, ebx
add esi, edi
inc eax
cmp eax, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], eax
jl 0x100830fb
jmp 0x1008351c
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x10083336
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
sub edx, eax
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x24], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, edx
jge 0x1008350a
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x44]
inc ebx
sub esi, ebp
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x3c], ebx
lea ecx, [eax + ebx]
cmp esi, ecx
jl 0x10083514
sub eax, 2
je 0x100834ba
sub eax, 2
je 0x1008348f
sub eax, 4
je 0x1008338e
mov byte [ebp], bl
jmp 0x100834c4
mov eax, ebx
mov ecx, 0x10
cdq
mov edi, eax
mov eax, ebx
and eax, 0xff00
mov esi, edx
cdq
mov ebp, eax
mov eax, edi
mov dword [esp + 0x50], ebp
mov ebp, edx
mov edx, esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
call fcn.100a0c80
mov edi, dword [esp + 0x50]
or ebp, edx
or edi, eax
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.100a0c80
mov edi, eax
mov eax, ebx
and eax, 0xff0000
mov ebp, edx
cdq
or edi, eax
or ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebp
call fcn.100a0c80
mov edi, dword [esp + 0x70]
xor ebx, ebx
mov ecx, edi
or edx, ebx
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov ebx, eax
mov ecx, 0x10
mov dword [esp + 0x50], ebx
mov ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, esi
mov eax, edi
mov edx, esi
xor ebp, ebp
and ebx, 0xff0000
call fcn.100a0ca0
or ebp, eax
or ebx, edx
mov ecx, 0x10
mov eax, ebp
mov edx, ebx
call fcn.100a0ca0
mov edi, esi
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.100a0ca0
xor ecx, ecx
and esi, 0xff
or eax, ecx
or edx, esi
mov ecx, 8
call fcn.100a0ca0
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x58]
mov dword [ebp], ecx
or eax, edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 4], eax
jmp 0x100834c4
mov ecx, ebx
mov eax, ebx
and ecx, 0xff0000
mov esi, ebx
shr eax, 0x10
or ecx, eax
mov eax, ebx
shl eax, 0x10
and esi, 0xff00
or eax, esi
shr ecx, 8
shl eax, 8
or ecx, eax
mov dword [ebp], ecx
jmp 0x100834c4
xor ecx, ecx
mov cl, bh
mov ch, bl
mov word [ebp], cx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 0x50]
add ebp, ecx
mov ecx, ebx
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
add ebp, ebx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
add esi, edx
inc eax
cmp eax, ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], eax
jl 0x10083321
jmp 0x1008351c
mov dword [esp + 0x14], 0x82010406
jmp 0x1008351c
mov dword [esp + 0x14], 0x82010402
mov eax, dword [esp + 0x2c]
test byte [eax + 0x44], 4
je 0x10083534
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x30]
shl ecx, 1
mov dword [edx + 0x24], ecx
jmp 0x10083542
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
sub eax, dword [ecx + 0x28]
mov dword [ecx + 0x24], eax
test dword [esp + 0x14], 0x80000000
jne 0x100838eb
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x1008357d
mov esi, dword [eax + 0xc]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [eax + 0x28]
dec esi
add edx, ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x28], edx
mov edx, dword [eax + 0x38]
mov dword [esp + 0x1c], edx
jmp 0x100838ab
mov esi, dword [eax + 0x10]
mov edx, dword [ecx + 0x2c]
inc esi
mov dword [eax + 0x10], esi
mov eax, esi
cmp eax, edx
jl 0x100838ab
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + 0xc]
mov dword [eax + 0x10], 0
dec edx
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x1c]
mov ecx, dword [eax + 0x28]
add ecx, edx
mov dword [eax + 0x28], ecx
mov eax, dword [eax + 0x38]
mov dword [esp + 0x1c], eax
jmp 0x100838ab
cmp dword [esp + 0x34], 0x20
jge 0x100838c3
test edi, edi
jne 0x1008374e
mov eax, dword [esi + 0x68]
mov ebx, dword [ecx + 0x28]
mov edx, dword [esi + 0x64]
add eax, ebx
sub edx, 2
je 0x10083604
sub edx, 2
je 0x10083600
sub edx, 4
je 0x100835f1
xor edx, edx
mov dl, byte [eax]
jmp 0x10083609
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
jmp 0x10083616
mov eax, dword [eax]
jmp 0x1008360b
xor edx, edx
mov dx, word [eax]
mov eax, edx
cdq
mov edi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edi
mov eax, dword [esi + 0x78]
mov edx, dword [esp + 0x5c]
mov ebx, dword [eax + edx + 0x248]
lea esi, [eax + edx + 0x114]
xor eax, eax
mov dword [esp + 0x28], esi
mov edx, dword [esi + 0x138]
cmp edx, ebx
setg al
dec eax
mov dword [esp + 0x20], eax
mov eax, edi
sub eax, edx
js 0x10083671
cmp eax, dword [esi + 0x2c]
jge 0x10083671
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
mov ebx, dword [esi + edx*4 + 0x138]
lea edx, [esi + edx*4]
cmp ebx, edi
jne 0x10083671
cmp ebx, dword [edx + 0x134]
jg 0x10083671
mov dword [esp + 0x20], eax
jmp 0x100836f2
mov edx, dword [esi + 0x2c]
cmp edx, 0x10
jge 0x100836a0
xor ebx, ebx
test edx, edx
jle 0x100836f2
lea eax, [esi + 0x134]
cmp dword [eax + 4], edi
jg 0x1008368e
cmp edi, dword [eax]
jle 0x1008369a
inc ebx
add eax, 0xb4
cmp ebx, edx
jl 0x10083685
jmp 0x100836f2
mov dword [esp + 0x20], ebx
jmp 0x100836f2
lea eax, [edx - 1]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x24], eax
jl 0x100836f2
mov eax, dword [esp + 0x24]
lea edx, [eax + ebx]
sar edx, 1
lea eax, [edx + edx*4]
lea eax, [eax + eax*8]
mov edi, dword [esi + eax*4 + 0x138]
lea eax, [esi + eax*4]
mov eax, dword [eax + 0x134]
cmp edi, eax
jg 0x100836e3
cmp dword [esp + 0x48], edi
jge 0x100836dd
dec edx
mov dword [esp + 0x24], edx
jmp 0x100836e6
cmp dword [esp + 0x48], eax
jle 0x100836ee
lea ebx, [edx + 1]
cmp ebx, dword [esp + 0x24]
jle 0x100836ad
jmp 0x100836f2
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x10083717
mov edi, dword [esp + 0x1810]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
mov edx, dword [esi + edx*4 + 0xbc]
cmp edx, edi
jg 0x10083717
test esi, esi
jne 0x1008376c
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x10083742
mov esi, dword [ecx + 0xc]
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx + 0x28]
dec esi
add edx, eax
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x28], edx
mov ecx, dword [ecx + 0x38]
mov dword [esp + 0x1c], ecx
jmp 0x100838ab
mov edx, dword [ecx + 0x10]
inc edx
mov dword [ecx + 0x10], edx
jmp 0x10082d5c
mov edx, dword [esi + 0x78]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], 0
lea esi, [edx + eax + 0x114]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x1810]
mov edi, dword [esi + 0x58]
cmp edi, edx
jg 0x100838d3
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
add ecx, 0xbc
inc edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x64]
xor edx, edx
cmp eax, edx
mov dword [ecx + 0x24], edx
mov dword [ecx], esi
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x30], ebp
jbe 0x100837e6
mov edx, dword [esi + 0x68]
mov dword [ecx + 0x14], eax
cmp edx, 0xffffffff
je 0x100837d4
mov edi, dword [esp + 0x2c]
mov edx, eax
mov dword [ecx + 0x34], ebp
neg edx
add ebp, eax
mov dword [ecx + 0x18], edx
mov dword [esp + 0x18], ebp
jmp 0x10083832
mov eax, dword [esi + 0x5c]
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
lea edx, [eax + ebp]
mov dword [ecx + 0x34], edx
jmp 0x10083832
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0x50]
cmp eax, edx
jbe 0x1008382f
mov edx, dword [edi + 0x54]
mov dword [ecx + 0x14], eax
cmp edx, 0xffffffff
je 0x1008380c
mov dword [ecx + 0x34], ebp
add ebp, eax
neg eax
mov dword [esp + 0x18], ebp
mov dword [ecx + 0x18], eax
jmp 0x10083832
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x28]
cmp eax, edx
jl 0x10083822
sub eax, edx
mov dword [ecx + 0x18], eax
add eax, ebp
mov dword [ecx + 0x34], eax
jmp 0x10083832
mov edx, dword [ecx - 0x8c]
add edx, eax
mov dword [ecx + 0x34], edx
jmp 0x10083832
mov dword [ecx + 0x14], edx
mov eax, dword [esi + 0x74]
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [ecx + 0x30], ebp
mov dword [ecx + 0x2c], edx
mov dword [ecx + 4], edi
mov dword [ecx + 0x38], 1
jbe 0x100838a1
mov esi, dword [esi + 0x70]
add esi, ebx
sub edx, esi
cmp edx, eax
jge 0x10083862
mov dword [esp + 0x14], 0x82010407
jmp 0x100838a1
sub eax, 2
je 0x10083896
sub eax, 2
je 0x1008388b
sub eax, 4
je 0x1008387c
mov al, byte [esp + 0x1810]
mov byte [esi], al
jmp 0x100838a1
mov eax, dword [esp + 0x1810]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x100838a1
mov ecx, dword [esp + 0x1810]
mov dword [esi], ecx
jmp 0x100838a1
mov dx, word [esp + 0x1810]
mov word [esi], dx
test dword [esp + 0x14], 0x80000000
jne 0x100838eb
mov esi, dword [esp + 0x34]
test esi, esi
jg 0x10082b37
jmp 0x100838eb
mov dword [esp + 0x14], 0x82010402
jmp 0x100838eb
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x14], 0x82010404
mov dword [ecx + 0x24], eax
jmp 0x100838eb
mov dword [esp + 0x14], 0x82010401
jmp 0x100838eb
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x14], 0x82010403
mov dword [ecx + 0x24], edx
mov esi, dword [esp + 0x180c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
test edi, 0x80000000
mov dword [esi + 4], eax
je 0x10083968
mov edx, dword [esp + 0x34]
mov eax, 1
cmp edx, eax
jle 0x10083968
lea ecx, [esp + 0x160]
mov ebx, dword [ecx - 0x20]
test byte [ebx + 0x44], 4
jne 0x1008394e
mov ebx, dword [ecx]
add ecx, 0xbc
add dword [esi + 4], ebx
inc eax
cmp eax, edx
jl 0x1008391c
mov eax, dword [esp + 0x1808]
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17f0
ret
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov edx, dword [esp + ecx*4 + 0x84]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x18]
add ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esp + 0x1808]
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17f0
ret
mov ebx, dword [esp + 0x180c]
mov ecx, dword [esp + 0x1808]
xor eax, eax
pop edi
mov dword [ebx + 4], eax
pop esi
mov dword [ecx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x17f0
ret
pop edi
pop esi
pop ebp
mov eax, 0x82010468
pop ebx
add esp, 0x17f0
ret