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

Disassembly:
mov eax, 0x1808
call fcn.1007e490
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1818]
test esi, esi
push edi
mov dword [esp + 0x20], 0
je 0x10084eea
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10084eea
mov edx, dword [esp + 0x1824]
test edx, edx
je 0x10084eea
mov eax, dword [esp + 0x1820]
test eax, eax
je 0x10084eea
mov ebp, dword [edx]
test ebp, ebp
je 0x10084eea
mov edi, dword [edx + 4]
test edi, edi
jbe 0x10084eea
mov ecx, dword [eax]
test ecx, ecx
je 0x10084eea
mov ebx, dword [eax + 4]
test ebx, ebx
jbe 0x10084eea
mov ebx, dword [esp + 0x1828]
test ebx, ebx
je 0x10083a4a
mov eax, dword [esi + 0xc]
cmp ebx, eax
jle 0x10083a56
mov eax, dword [esi + 0xc]
mov ebx, eax
mov dword [esp + 0x1828], ebx
cmp dword [esi + 8], ebx
jg 0x10084ecb
cmp ebx, eax
jg 0x10084ecb
mov edx, dword [esi + 0x74]
test edx, edx
jbe 0x10083a99
cmp dword [esi + 0x58], ebx
jle 0x10083a99
mov ecx, dword [esp + 0x1820]
mov edx, dword [esp + 0x1824]
xor eax, eax
pop edi
mov dword [ecx + 4], eax
pop esi
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
mov ebx, dword [esi + 0x3c]
mov eax, esi
sub eax, ebx
add edi, ebp
sub eax, 0x114
lea ebx, [esp + 0x98]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1820]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esp + 0x24], esi
add eax, ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x64]
test eax, eax
mov dword [esp + 0x98], esi
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xc0], ecx
jbe 0x10083b33
mov ecx, dword [esi + 0x68]
mov dword [esp + 0xac], eax
cmp ecx, 0xffffffff
je 0x10083b25
mov dword [esp + 0xcc], ebp
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x10083b4a
mov ecx, dword [esi + 0x5c]
add ecx, ebp
mov dword [esp + 0xcc], ecx
jmp 0x10083b4a
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xcc], eax
test edx, edx
jbe 0x10083d03
mov ecx, dword [esi + 0x6c]
add ecx, ebp
sub edi, ecx
cmp edi, edx
jl 0x10083cc0
mov eax, edx
sub eax, 2
je 0x10083c8c
sub eax, 2
je 0x10083c65
sub eax, 4
je 0x10083b83
xor eax, eax
mov al, byte [ecx]
jmp 0x10083c9a
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
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 + 0x44]
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, dword [esp + 0x40]
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], 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 + 0x40]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x40]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x181c]
or ecx, eax
mov eax, dword [esp + 0x30]
or eax, edx
mov dword [esp + 0x68], eax
jmp 0x10083ca1
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x10083c9a
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x68], edx
xor edx, edx
mov eax, ecx
cmp ecx, edx
mov dword [esp + 0xb8], eax
jne 0x10083cd0
mov eax, dword [esp + 0x1828]
mov dword [esp + 0xb8], eax
jmp 0x10083cd0
mov eax, dword [esp + 0x1828]
xor edx, edx
mov dword [esp + 0xb8], eax
cmp dword [esi + 8], eax
jg 0x10083cdf
cmp eax, dword [esi + 0xc]
jg 0x10083cdf
cmp eax, dword [esi + 0x58]
jge 0x10083d13
mov eax, dword [esp + 0x1820]
mov ecx, dword [esp + 0x1824]
pop edi
pop esi
mov dword [eax + 4], edx
pop ebp
mov dword [ecx + 4], edx
mov eax, 0x82010470
pop ebx
add esp, 0x1808
ret
mov edx, dword [esp + 0x1828]
mov dword [esp + 0xb8], edx
xor edx, edx
mov eax, 1
mov dword [esp + 0xbc], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x2c], edx
xor edi, edi
cmp dword [esp + 0x2c], edi
je 0x10083f15
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x2c], edi
cmp eax, edi
jbe 0x10083ea6
sub eax, 2
je 0x10083e79
sub eax, 2
je 0x10083e51
sub eax, 4
je 0x10083d75
mov eax, dword [ebx + 0x34]
xor ecx, ecx
mov cl, byte [eax]
mov eax, ecx
jmp 0x10083e8a
mov edx, dword [ebx + 0x34]
mov ecx, 0x10
xor esi, esi
mov edi, dword [edx]
mov eax, edi
mov edx, dword [edx + 4]
mov ebp, edx
mov dword [esp + 0x94], edx
and ebp, 0xff0000
call fcn.100a0ca0
or esi, eax
or ebp, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.100a0ca0
mov esi, dword [esp + 0x94]
xor ecx, ecx
mov ebp, esi
or eax, ecx
and ebp, 0xff00
mov ecx, 0x10
or edx, ebp
call fcn.100a0ca0
mov ebp, esi
xor ecx, ecx
and ebp, 0xff
or eax, ecx
or edx, ebp
mov ecx, 8
call fcn.100a0ca0
mov dword [esp + 0x80], eax
mov ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.100a0c80
mov ecx, edi
xor esi, esi
and ecx, 0xff00
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, edi
or edx, esi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
xor ecx, ecx
and edi, 0xff000000
or edx, ecx
or eax, edi
mov ecx, 8
call fcn.100a0c80
mov ecx, dword [esp + 0x80]
or ebp, edx
or ecx, eax
mov dword [esp + 0x3c], ebp
xor edi, edi
jmp 0x10083e91
mov edx, dword [ebx + 0x34]
mov ecx, dword [edx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
jmp 0x10083e88
mov ecx, dword [ebx + 0x34]
xor eax, eax
xor edx, edx
mov ax, word [ecx]
mov dh, al
shr eax, 8
or eax, edx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
mov ebp, dword [ebx + 0x30]
mov eax, dword [esp + 0x48]
add ebp, ecx
cmp ebp, eax
mov dword [esp + 0x10], ebp
ja 0x10084dee
cmp dword [ebx + 0xc], edi
jle 0x10083ed1
cmp dword [ebx + 0x14], edi
jbe 0x10083ed1
cmp dword [ebx + 0x18], edi
jge 0x10083ec6
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x34], ebp
sub ebp, eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x30], ebp
jmp 0x10083ed1
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x30], ebp
add eax, ebp
mov dword [ebx + 0x34], eax
cmp dword [esp + 0x34], 1
jle 0x10083f15
mov eax, dword [ebx + 4]
test byte [eax + 0x44], 4
je 0x10083efb
mov ecx, dword [eax + 0x18]
mov eax, dword [ebx - 0x98]
mov esi, dword [esp + 0x24]
add eax, ecx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x10083f19
mov esi, dword [esp + 0x24]
mov eax, dword [ebx - 0x98]
mov edx, dword [esi + 0x1c]
add eax, edx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x10083f19
mov esi, dword [esp + 0x24]
cmp dword [ebx + 0xc], edi
jg 0x10083f7d
mov eax, dword [esp + 0x34]
sub ebx, 0xbc
dec eax
mov dword [esp + 0x50], ebx
cmp eax, edi
mov dword [esp + 0x34], eax
jle 0x10084e2c
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
cmp dword [eax + 0x10], edi
je 0x10084b09
mov esi, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc esi
mov ecx, esi
mov dword [ebx + 0x10], esi
cmp ecx, edx
jl 0x10084dde
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x10084dde
mov ecx, dword [ebx + 0x10]
lea eax, [ecx + ecx*4]
lea edx, [eax + eax*8]
mov al, byte [esi + edx*4 + 0xfc]
test al, 2
lea edi, [esi + edx*4 + 0xb8]
mov dword [esp + 0x18], edi
je 0x10083fa9
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x1008403f
jmp 0x10084021
mov eax, dword [edi + 0x58]
test eax, eax
jbe 0x10083ff8
mov edx, dword [edi + 0x5c]
add edx, dword [ebx + 0x28]
sub eax, 2
je 0x10083fea
sub eax, 2
je 0x10083fdf
sub eax, 4
je 0x10083fd2
xor eax, eax
mov al, byte [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x10083ffb
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x10083ffb
mov eax, dword [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x10083ffb
xor eax, eax
mov ax, word [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x10083ffb
mov edx, dword [edi + 0x24]
test edx, edx
mov dword [esp + 0x4c], edx
jl 0x10084e1e
mov eax, dword [edi + 0x24]
cmp eax, edx
jge 0x10084016
test eax, eax
jg 0x10084e1e
test edx, edx
jne 0x10084075
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x1008403f
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x10084dde
lea eax, [ecx + 1]
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
mov dword [ebx + 0x10], eax
jl 0x10084dde
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x10084dde
mov eax, dword [ebx + 0x28]
mov esi, dword [edi + 0x2c]
add esi, eax
mov al, byte [edi + 0x44]
test al, 4
mov dword [esp + 0x14], esi
je 0x100840af
mov eax, dword [edi + 8]
mov esi, dword [esi]
cmp eax, 1
mov dword [esp + 0x14], esi
jle 0x1008409d
mov ecx, dword [edi + 0x14]
add ecx, esi
jmp 0x100840b2
mov ecx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov ecx, dword [ecx + eax + 0x130]
add ecx, esi
jmp 0x100840b2
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x28], ecx
cmp dword [edi + 4], eax
jle 0x10084257
mov eax, dword [edi + 0x98]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x10084111
mov eax, dword [edi + 0x20]
test eax, eax
jbe 0x100840df
imul eax, edx
mov edi, eax
jmp 0x100840e5
mov edi, dword [edi + 0x18]
imul edi, edx
sub ecx, esi
cmp ecx, edi
jge 0x100840f8
mov dword [esp + 0x20], 0x82010407
jmp 0x100841e5
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x100841e5
mov eax, dword [edi + 8]
cmp eax, 0x15
je 0x10084127
cmp eax, 0x16
je 0x10084127
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
jmp 0x10084136
mov eax, dword [edi + 0x20]
test eax, eax
ja 0x10084132
mov eax, ecx
sub eax, esi
mov dword [esp + 0x1c], eax
sub ecx, esi
cmp ecx, eax
jge 0x10084142
mov eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x8c]
cmp eax, ecx
jge 0x10084159
mov dword [esp + 0x20], 0x82010407
jmp 0x100841e5
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
test edx, edx
lea eax, [eax + edi + 0x114]
mov dword [esp + 0x30], eax
jle 0x100841e5
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
cmp ecx, 0x40
ja 0x1008419a
xor edi, edi
test ecx, ecx
jbe 0x100841c0
mov cl, byte [eax]
mov edx, dword [esp + 0x18]
mov byte [esi], cl
inc esi
mov ecx, dword [edx + 0x8c]
inc eax
inc edi
cmp edi, ecx
jb 0x10084183
jmp 0x100841c0
mov esi, eax
mov eax, dword [esp + 0x14]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
add eax, dword [ecx + 0x8c]
mov dword [esp + 0x14], eax
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [edx + 0x8c]
mov edx, dword [esp + 0x1c]
sub edx, ecx
add esi, edx
mov edx, dword [esp + 0x28]
dec edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
jne 0x10084178
test dword [esp + 0x20], 0x80000000
jne 0x10084df8
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x1008421c
mov edx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x10084dde
mov eax, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc eax
cmp eax, edx
mov dword [ebx + 0x10], eax
jl 0x10084dde
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x10084dde
mov eax, dword [edi + 8]
cmp eax, 1
jle 0x100849b0
sub eax, 0x15
je 0x100846d1
dec eax
je 0x10084485
mov eax, dword [edi + 0x18]
imul eax, edx
add eax, esi
cmp eax, ecx
jbe 0x1008428c
mov dword [esp + 0x20], 0x82010407
jmp 0x10084923
mov eax, dword [edi + 0x1c]
mov ecx, eax
imul ecx, edx
add ecx, ebp
cmp ecx, dword [esp + 0x48]
jbe 0x100842a9
mov dword [esp + 0x20], 0x82010402
jmp 0x10084923
dec eax
je 0x10084434
dec eax
je 0x1008440c
sub eax, 2
je 0x100843bd
test edx, edx
jle 0x10084923
mov dword [esp + 0x28], edx
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov ebx, ebp
mov ecx, 0x10
mov eax, esi
mov edx, ebp
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, ebp
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.100a0ca0
mov edi, ebp
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.100a0ca0
mov edi, eax
mov ebx, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.100a0c80
mov ecx, esi
xor ebp, ebp
and ecx, 0xff00
or edx, ebp
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, esi
or edx, ebp
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.100a0c80
or edi, eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
or ebx, edx
mov dword [eax], edi
mov dword [eax + 4], ebx
add eax, 8
add ebp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x28], eax
jne 0x100842cc
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
jmp 0x1008491f
test edx, edx
jle 0x10084923
mov dword [esp + 0x28], edx
mov eax, dword [ebp]
add esi, 4
mov edx, eax
mov ecx, eax
and edx, 0xff0000
add ebp, 4
shr ecx, 0x10
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
mov eax, dword [esp + 0x28]
shr edx, 8
shl ecx, 8
or edx, ecx
dec eax
mov dword [esi - 4], edx
mov dword [esp + 0x28], eax
jne 0x100843c9
mov dword [esp + 0x10], ebp
jmp 0x10084923
test edx, edx
jle 0x10084923
mov ax, word [ebp]
xor ecx, ecx
mov cl, ah
add esi, 2
mov ch, al
add ebp, 2
mov word [esi - 2], cx
dec edx
jne 0x10084414
mov dword [esp + 0x10], ebp
jmp 0x10084923
cmp edx, 0x40
jg 0x10084454
test edx, edx
jbe 0x10084923
mov al, byte [ebp]
mov byte [esi], al
inc esi
inc ebp
dec edx
jne 0x10084441
mov dword [esp + 0x10], ebp
jmp 0x10084923
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
jmp 0x1008491f
test edx, edx
mov dword [esp + 0x30], 0
jle 0x10084923
jmp 0x1008449f
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x100844ae
sub ecx, esi
mov dword [esp + 0x1c], ecx
jmp 0x100844b2
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x48]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x100846c0
sub eax, 2
je 0x100845f0
sub eax, 2
je 0x100845c8
sub eax, 4
je 0x100844e9
xor eax, eax
mov al, byte [ebp]
jmp 0x100845ff
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
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, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.100a0ca0
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.100a0ca0
mov ebx, eax
mov dword [esp + 0x74], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.100a0c80
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.100a0c80
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
or ebx, eax
mov eax, dword [esp + 0x74]
or eax, edx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
jmp 0x10084608
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x100845ff
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
test edx, edx
jl 0x100846c0
jg 0x1008461b
cmp eax, 2
jb 0x100846c0
mov edi, dword [edi + 0x50]
lea ecx, [eax + edi]
mov edi, dword [esp + 0x48]
sub edi, ebp
cmp edi, ecx
jl 0x10084905
xor edi, edi
cmp edx, edi
jg 0x10084913
mov edx, dword [esp + 0x1c]
jl 0x10084647
cmp eax, edx
ja 0x10084913
cmp word [ecx + ebp - 2], 0
jne 0x10084913
mov ebp, dword [esp + 0x10]
cmp eax, 0x40
ja 0x1008466e
test eax, eax
jbe 0x1008469a
mov edi, eax
mov cl, byte [ebp]
mov byte [esi], cl
inc esi
inc ebp
dec edi
jne 0x10084662
jmp 0x1008469a
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
mov ecx, dword [esp + 0x4c]
sub edx, eax
mov eax, dword [esp + 0x30]
add esi, edx
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x10084497
mov dword [esp + 0x10], ebp
jmp 0x1008491f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x10084923
test edx, edx
mov dword [esp + 0x30], 0
jle 0x10084923
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x100846f2
mov eax, dword [esp + 0x28]
sub eax, esi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x100846c0
sub eax, 2
je 0x1008482a
sub eax, 2
je 0x10084802
sub eax, 4
je 0x10084729
xor eax, eax
mov al, byte [ebp]
jmp 0x10084839
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
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, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.100a0ca0
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.100a0ca0
mov ebx, eax
mov dword [esp + 0x7c], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.100a0c80
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.100a0c80
mov esi, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, edx
mov dword [esp + 0x58], eax
mov edi, eax
jmp 0x10084846
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x10084839
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov edi, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
test edi, edi
jl 0x10084905
jg 0x10084859
cmp ecx, 1
jb 0x10084905
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x48]
add eax, ecx
sub edx, ebp
cmp edx, eax
mov dword [esp + 0x38], eax
jl 0x10084905
mov eax, dword [esp + 0x1c]
cdq
cmp edi, edx
jg 0x10084913
jl 0x1008488b
cmp ecx, eax
ja 0x10084913
mov eax, dword [esp + 0x38]
mov dl, byte [eax + ebp - 1]
test dl, dl
jne 0x10084913
mov ebp, dword [esp + 0x10]
cmp ecx, 0x40
ja 0x100848b2
test ecx, ecx
jbe 0x100848de
mov edi, ecx
mov dl, byte [ebp]
mov byte [esi], dl
inc esi
inc ebp
dec edi
jne 0x100848a6
jmp 0x100848de
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x4c]
add esi, eax
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x100846e1
mov dword [esp + 0x10], ebp
jmp 0x1008491f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x1008491f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010406
mov edi, dword [esp + 0x18]
test byte [edi + 0x44], 4
je 0x10084936
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x2c]
add eax, ecx
mov dword [ebx + 0x24], eax
jmp 0x1008493c
sub esi, dword [ebx + 0x28]
mov dword [ebx + 0x24], esi
test dword [esp + 0x20], 0x80000000
jne 0x10084e2c
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x10084973
mov edx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ebx + 0x28]
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [ebx + 0x38]
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x10084dde
mov esi, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc esi
mov eax, esi
mov dword [ebx + 0x10], esi
cmp eax, edx
jl 0x10084dde
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x38]
dec ecx
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x10], 0
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x10084dde
cmp dword [esp + 0x34], 0x20
jge 0x10084e04
test eax, eax
jne 0x10084b62
mov ecx, dword [edi + 0x68]
mov esi, dword [ebx + 0x28]
mov eax, dword [edi + 0x64]
add ecx, esi
sub eax, 2
je 0x100849f6
sub eax, 2
je 0x100849f2
sub eax, 4
je 0x100849e3
xor eax, eax
mov al, byte [ecx]
jmp 0x100849fb
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
jmp 0x10084a04
mov eax, dword [ecx]
jmp 0x100849fb
xor eax, eax
mov ax, word [ecx]
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x78]
mov ecx, dword [esp + 0x6c]
mov esi, dword [edx + ecx + 0x24c]
lea edx, [edx + ecx + 0x114]
xor ecx, ecx
mov dword [esp + 0x24], edx
cmp esi, dword [edx + 0x134]
lea edi, [edx + 0x134]
mov dword [esp + 0x38], edi
setg cl
dec ecx
mov dword [esp + 0x1c], ecx
mov ecx, eax
sub ecx, esi
js 0x10084a5e
cmp ecx, dword [edx + 0x2c]
jge 0x10084a5e
lea esi, [ecx + ecx*4]
lea esi, [esi + esi*8]
mov edi, dword [edx + esi*4 + 0x138]
lea esi, [edx + esi*4]
cmp edi, eax
jne 0x10084a5e
cmp edi, dword [esi + 0x134]
jle 0x10084ad1
mov edx, dword [edx + 0x2c]
cmp edx, 0x10
jge 0x10084a8c
xor esi, esi
test edx, edx
jle 0x10084ad5
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], eax
jg 0x10084a79
cmp eax, dword [ecx]
jle 0x10084a86
inc esi
add ecx, 0xb4
cmp esi, edx
jl 0x10084a70
jmp 0x10084ad5
mov dword [esp + 0x1c], esi
jmp 0x10084ad5
lea esi, [edx - 1]
xor eax, eax
test esi, esi
jl 0x10084ad5
lea ecx, [esi + eax]
mov edi, dword [esp + 0x24]
sar ecx, 1
lea edx, [ecx + ecx*4]
lea edx, [edx + edx*8]
lea edx, [edi + edx*4]
mov edi, dword [edx + 0x138]
mov edx, dword [edx + 0x134]
cmp edi, edx
jg 0x10084ac8
cmp dword [esp + 0x40], edi
jge 0x10084ac2
lea esi, [ecx - 1]
jmp 0x10084acb
cmp dword [esp + 0x40], edx
jle 0x10084ad1
lea eax, [ecx + 1]
cmp eax, esi
jle 0x10084a95
jmp 0x10084ad5
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x10084afc
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [ebx + 0x20]
cmp dword [esi + edx*4 + 0xbc], ecx
jg 0x10084afc
test esi, esi
jne 0x10084b82
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x10084b27
mov edx, dword [ebx + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x10084dde
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc ecx
cmp ecx, edx
mov dword [ebx + 0x10], ecx
jl 0x10084dde
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x10084dde
mov edx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], 0
lea ecx, [edx + eax + 0x114]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov esi, ecx
mov edi, dword [esp + 0x34]
add ebx, 0xbc
mov edx, dword [esp + 0x4c]
inc edi
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x64]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x50], ebx
mov dword [ebx + 0x24], edi
mov dword [ebx], esi
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x30], ebp
jbe 0x10084bea
mov ecx, dword [esi + 0x68]
mov dword [ebx + 0x14], eax
cmp ecx, 0xffffffff
je 0x10084bd8
mov ecx, eax
mov dword [ebx + 0x34], ebp
neg ecx
add ebp, eax
mov dword [ebx + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ebp
jmp 0x10084c36
mov eax, dword [esi + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
lea edx, [eax + ebp]
mov dword [ebx + 0x34], edx
jmp 0x10084c36
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x50]
cmp eax, edi
jbe 0x10084c33
mov edx, dword [ecx + 0x54]
mov dword [ebx + 0x14], eax
cmp edx, 0xffffffff
je 0x10084c10
mov dword [ebx + 0x34], ebp
add ebp, eax
neg eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x18], eax
jmp 0x10084c36
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x28]
cmp eax, edx
jl 0x10084c26
sub eax, edx
mov dword [ebx + 0x18], eax
add eax, ebp
mov dword [ebx + 0x34], eax
jmp 0x10084c36
mov edx, dword [ebx - 0x8c]
add edx, eax
mov dword [ebx + 0x34], edx
jmp 0x10084c36
mov dword [ebx + 0x14], edi
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x74]
cmp eax, edi
mov dword [ebx + 4], ecx
mov dword [ebx + 0x38], 1
jbe 0x10084dc6
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x48]
add ecx, ebp
sub edx, ecx
cmp edx, eax
jl 0x10084dbb
sub eax, 2
je 0x10084d94
sub eax, 2
je 0x10084d6d
sub eax, 4
je 0x10084c88
xor eax, eax
mov al, byte [ecx]
jmp 0x10084da2
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
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 + 0x68]
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, dword [esp + 0x64]
mov dword [esp + 0x88], eax
mov dword [esp + 0x38], 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 + 0x64]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.100a0c80
mov ecx, dword [esp + 0x64]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.100a0c80
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x38]
or eax, edx
mov dword [esp + 0x3c], eax
jmp 0x10084da9
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x10084da2
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
test ecx, ecx
mov dword [ebx + 0x20], ecx
jne 0x10084dcf
mov edx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], edx
jmp 0x10084dcf
mov eax, dword [ebx - 0x9c]
mov dword [ebx + 0x20], eax
jmp 0x10084dcf
mov ecx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], ecx
mov eax, dword [ebx + 0x20]
mov ecx, dword [esi + 8]
cmp ecx, eax
jg 0x10084e14
cmp eax, dword [esi + 0x58]
jl 0x10084e14
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jg 0x10083d37
jmp 0x10084e2c
mov dword [esp + 0x20], 0x82010402
jmp 0x10084e2c
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0x24], eax
jmp 0x10084e2c
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010404
mov dword [ebx + 0x24], ecx
jmp 0x10084e2c
mov dword [esp + 0x20], 0x82010401
jmp 0x10084e2c
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010403
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x1820]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xbc]
test esi, 0x80000000
mov dword [edx + 4], eax
je 0x10084eb2
mov ecx, dword [esp + 0x34]
mov eax, 1
cmp ecx, eax
jle 0x10084eb2
lea ecx, [esp + 0x178]
mov edi, dword [ecx - 0x20]
test byte [edi + 0x44], 4
jne 0x10084e98
mov edi, dword [ecx]
mov ebx, dword [edx + 4]
add ebx, edi
mov edi, dword [esp + 0x34]
inc eax
add ecx, 0xbc
cmp eax, edi
mov dword [edx + 4], ebx
jl 0x10084e5d
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov eax, dword [esp + ecx*4 + 0x9c]
mov ecx, dword [eax + 0x18]
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
mov ecx, dword [esp + 0x1820]
xor eax, eax
pop edi
pop esi
mov dword [ecx + 4], eax
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
pop edi
pop esi
pop ebp
mov eax, 0x82010468
pop ebx
add esp, 0x1808
ret