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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3c]
mov edx, 1
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x7c]
mov ebp, dword [edi + 0x68]
mov esi, dword [edi]
mov ebx, dword [edi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x78]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
shl edx, cl
add eax, 0xc
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [edi + 8]
sar ecx, 1
or ecx, edx
mov edx, dword [edi + 0x80]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
test edx, 0xfffffffc
jbe 0x5349cf
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*2]
shl edx, 2
xor ebp, ebp
mov dword [esp + 0x30], edx
jmp 0x532e64
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x14]
je 0x53499a
mov ebp, dword [ecx]
mov dword [esp + 0x40], ebp
test ebp, ebp
jne 0x533d1d
mov edx, dword [edi + 0x60]
lea ecx, [edi + 0x60]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x532f18
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
cmp ebx, ebp
jae 0x532ead
mov ecx, dword [edx + 8]
jmp 0x532ebd
xor ecx, ecx
cmp dword [esp + 0x24], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x532f06
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x532ef9
cmp ecx, 0x8f
jbe 0x532eef
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x532f04
mov eax, 7
shl ecx, 9
jmp 0x532f01
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x532ec5
jmp 0x532f9e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x532fa2
cmp ebx, ebp
jae 0x532f41
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x532f48
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test eax, eax
jne 0x532f91
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x532f84
cmp ecx, 0x8f
jbe 0x532f7a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x532f8f
mov eax, 7
shl ecx, 9
jmp 0x532f8c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x532f50
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x53496b
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x64]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533043
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
cmp ebx, ebp
jae 0x532fd5
mov ecx, dword [edx + 8]
jmp 0x532fe5
xor ecx, ecx
cmp dword [esp + 0x24], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x533031
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533024
cmp ecx, 0x8f
jbe 0x53301a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53302f
mov eax, 7
shl ecx, 9
jmp 0x53302c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x532ff0
jmp 0x5330d4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5330d0
cmp ebx, ebp
jae 0x53306c
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533073
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x5330c1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5330b4
cmp ecx, 0x8f
jbe 0x5330aa
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5330bf
mov eax, 7
shl ecx, 9
jmp 0x5330bc
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533080
jmp 0x5330d4
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533163
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5330f7
mov ecx, dword [edx + 8]
jmp 0x533107
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop
test eax, eax
jne 0x533151
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533144
cmp ecx, 0x8f
jbe 0x53313a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53314f
mov eax, 7
shl ecx, 9
jmp 0x53314c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533110
jmp 0x5331f4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5331f0
cmp ebx, ebp
jae 0x53318c
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533193
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x5331e1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5331d4
cmp ecx, 0x8f
jbe 0x5331ca
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5331df
mov eax, 7
shl ecx, 9
jmp 0x5331dc
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5331a0
jmp 0x5331f4
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, dword [esp + 0x28]
cmp ecx, 3
ja case.default.0x533207
jmp dword [ecx*4 + 0x534a68]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x80000
and edx, 0x20000
or edx, ecx
shr edx, 0x11
mov dword [esp + 0x28], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x40], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x5332cf
cmp ebx, ebp
jae 0x533261
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x533270
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x40]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x5332b9
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5332ac
cmp ecx, 0x8f
jbe 0x5332a2
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5332b7
mov eax, 7
shl ecx, 9
jmp 0x5332b4
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533278
mov edx, dword [esp + 0x24]
jmp 0x53335a
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533357
cmp ebx, ebp
jae 0x5332f3
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5332fd
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x40]
mov dword [edx], ecx
test eax, eax
jne 0x533344
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533337
cmp ecx, 0x8f
jbe 0x53332d
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533342
mov eax, 7
shl ecx, 9
jmp 0x53333f
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533303
mov edx, dword [esp + 0x24]
jmp 0x53335a
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x24], edx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp], ecx
mov ebp, edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
shl ebp, 0x13
or ebp, 0x10
or dword [ecx - 4], 0x20
or dword [ecx + 4], 8
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x40], ebp
lea ecx, [ecx*4 + 8]
sub edx, ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
or ecx, 0x10000
or dword [edx], ecx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
mov edx, ebp
mov ecx, dword [edi + 0x6c]
shr edx, 3
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x53346b
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x533400
mov ecx, dword [edx + 8]
jmp 0x533410
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x533459
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x53344c
cmp ecx, 0x8f
jbe 0x533442
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533457
mov eax, 7
shl ecx, 9
jmp 0x533454
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533418
jmp 0x5334ef
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5334f3
cmp ebx, ebp
jae 0x533494
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53349b
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x5334e2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5334d5
cmp ecx, 0x8f
jbe 0x5334cb
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5334e0
mov eax, 7
shl ecx, 9
jmp 0x5334dd
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5334a1
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x5336c8
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x400000
and edx, 0x100000
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x80000
shr edx, 4
or edx, ecx
and ebp, 0x550
shr edx, 0xc
or edx, ebp
shr edx, 3
mov dword [esp + 0x10], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x5335e9
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53357a
mov ecx, dword [edx + 8]
jmp 0x53358a
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x5335d3
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5335c6
cmp ecx, 0x8f
jbe 0x5335bc
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5335d1
mov eax, 7
shl ecx, 9
jmp 0x5335ce
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533592
mov edx, dword [esp + 0x28]
jmp 0x53367a
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533677
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x533616
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53361d
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x533664
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533657
cmp ecx, 0x8f
jbe 0x53364d
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533662
mov eax, 7
shl ecx, 9
jmp 0x53365f
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533623
mov edx, dword [esp + 0x28]
jmp 0x53367a
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp + edi*4], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
shl edx, 0x16
or dword [ebp - 4], 0x100
or edx, 0x80
or ecx, edx
or dword [ebp + 4], 0x40
mov dword [esp + 0x40], ecx
jmp 0x5336cc
mov ecx, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 6
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533777
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53370c
mov ecx, dword [edx + 8]
jmp 0x53371c
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x533765
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533758
cmp ecx, 0x8f
jbe 0x53374e
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533763
mov eax, 7
shl ecx, 9
jmp 0x533760
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533724
jmp 0x5337ff
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x533803
cmp ebx, ebp
jae 0x5337a4
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5337ab
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x5337f2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5337e5
cmp ecx, 0x8f
jbe 0x5337db
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5337f0
mov eax, 7
shl ecx, 9
jmp 0x5337ed
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5337b1
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x5339db
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x2000000
and edx, 0x800000
or edx, ecx
mov ecx, ebp
and ecx, 0x10000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 4
or edx, ecx
and ebp, 0x2a80
shr edx, 0xc
or edx, ebp
shr edx, 6
mov dword [esp + 0x10], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x24], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x5338f9
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53388a
mov ecx, dword [edx + 8]
jmp 0x53389a
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x5338e3
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5338d6
cmp ecx, 0x8f
jbe 0x5338cc
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5338e1
mov eax, 7
shl ecx, 9
jmp 0x5338de
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5338a2
mov edx, dword [esp + 0x28]
jmp 0x53398a
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533987
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x533926
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53392d
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x533974
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533967
cmp ecx, 0x8f
jbe 0x53395d
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533972
mov eax, 7
shl ecx, 9
jmp 0x53396f
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533933
mov edx, dword [esp + 0x28]
jmp 0x53398a
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp + edi*8], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
shl edx, 0x19
or dword [ebp - 4], 0x800
or edx, 0x400
or ecx, edx
or dword [ebp + 4], 0x200
mov dword [esp + 0x40], ecx
jmp 0x5339df
mov ecx, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [edi + 0x6c]
shr edx, 9
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533a8a
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x533a1f
mov ecx, dword [edx + 8]
jmp 0x533a2f
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x533a78
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533a6b
cmp ecx, 0x8f
jbe 0x533a61
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533a76
mov eax, 7
shl ecx, 9
jmp 0x533a73
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533a37
jmp 0x533b12
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x533b16
cmp ebx, ebp
jae 0x533ab7
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533abe
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x533b05
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533af8
cmp ecx, 0x8f
jbe 0x533aee
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533b03
mov eax, 7
shl ecx, 9
jmp 0x533b00
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533ac4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.default.0x533207
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x10000000
and edx, 0x4000000
or edx, ecx
mov ecx, ebp
and ecx, 0x81ffffff
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 4
or edx, ecx
and ebp, 0x15400
shr edx, 0xc
or edx, ebp
shr edx, 9
mov dword [esp + 0x24], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533c0c
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x533b9d
mov ecx, dword [edx + 8]
jmp 0x533bad
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x533bf6
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533be9
cmp ecx, 0x8f
jbe 0x533bdf
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533bf4
mov eax, 7
shl ecx, 9
jmp 0x533bf1
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533bb5
mov edx, dword [esp + 0x28]
jmp 0x533c9d
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533c9a
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x533c39
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533c40
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x533c87
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533c7a
cmp ecx, 0x8f
jbe 0x533c70
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533c85
mov eax, 7
shl ecx, 9
jmp 0x533c82
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533c46
mov edx, dword [esp + 0x28]
jmp 0x533c9d
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [edi + ebp], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
or dword [ecx - 4], 0x4000
mov ecx, edx
shl ecx, 0x1c
or ecx, 0x2000
shl edx, 0x12
or ebp, ecx
or edx, 2
mov ecx, dword [esp + 0x14]
or dword [ecx + 4], 0x1000
mov ecx, dword [edi + 0x7c]
mov edi, dword [esp + 0x14]
or dword [edi + ecx*4 + 8], edx
mov edx, edi
mov edi, dword [esp + 0x3c]
or dword [edx + ecx*4 + 4], 4
or dword [edx + ecx*4 + 0xc], 1
mov ecx, edx
and ebp, 0xb6dfffff
mov dword [ecx], ebp
jmp 0x53496f
test ebp, 0x200010
jne 0x534058
mov ecx, dword [edi + 0x6c]
mov edx, ebp
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533dd3
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x533d66
mov ecx, dword [edx + 8]
jmp 0x533d76
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop
test eax, eax
jne 0x533dc1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533db4
cmp ecx, 0x8f
jbe 0x533daa
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533dbf
mov eax, 7
shl ecx, 9
jmp 0x533dbc
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533d80
jmp 0x533e5e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x533e62
cmp ebx, ebp
jae 0x533e00
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533e07
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov ebp, dword [esp + 0x10]
mov dword [ebp], ecx
nop
test eax, eax
jne 0x533e51
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533e44
cmp ecx, 0x8f
jbe 0x533e3a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533e4f
mov eax, 7
shl ecx, 9
jmp 0x533e4c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533e10
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
test ecx, ecx
je 0x534058
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x80000
and edx, 0x20000
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x40000
shr edx, 2
or edx, ecx
and ebp, 0xaa
shr edx, 0xe
or edx, ebp
mov dword [esp + 0x28], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x533f57
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
cmp ebx, ebp
jae 0x533ee6
mov ecx, dword [edx + 8]
jmp 0x533ef6
xor ecx, ecx
cmp dword [esp + 0x24], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop
test eax, eax
jne 0x533f41
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533f34
cmp ecx, 0x8f
jbe 0x533f2a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533f3f
mov eax, 7
shl ecx, 9
jmp 0x533f3c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533f00
mov edx, dword [esp + 0x24]
jmp 0x533fe8
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533fe5
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x533f84
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x533f8b
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x533fd2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x533fc5
cmp ecx, 0x8f
jbe 0x533fbb
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x533fd0
mov eax, 7
shl ecx, 9
jmp 0x533fcd
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x533f91
mov edx, dword [esp + 0x24]
jmp 0x533fe8
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x24], edx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
or dword [ecx - 4], 0x20
mov ecx, edx
mov edx, dword [esp + 0x14]
shl ecx, 0x13
or ecx, 0x10
or ebp, ecx
or dword [edx + 4], 8
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x40], ebp
lea ecx, [ecx*4 + 8]
sub edx, ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
or ecx, 0x10000
or dword [edx], ecx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
test ebp, 0x1000080
jne 0x534373
mov ecx, dword [edi + 0x6c]
mov edx, ebp
shr edx, 3
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x534113
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5340a4
mov ecx, dword [edx + 8]
jmp 0x5340b4
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x534101
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5340f4
cmp ecx, 0x8f
jbe 0x5340ea
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5340ff
mov eax, 7
shl ecx, 9
jmp 0x5340fc
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5340c0
jmp 0x53419e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5341a2
cmp ebx, ebp
jae 0x534140
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534147
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x534191
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534184
cmp ecx, 0x8f
jbe 0x53417a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53418f
mov eax, 7
shl ecx, 9
jmp 0x53418c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534150
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
test ecx, ecx
je 0x534373
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x400000
and edx, 0x100000
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x80000
shr edx, 4
or edx, ecx
and ebp, 0x550
shr edx, 0xc
or edx, ebp
shr edx, 3
mov dword [esp + 0x24], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x534298
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x534229
mov ecx, dword [edx + 8]
jmp 0x534239
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x534282
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534275
cmp ecx, 0x8f
jbe 0x53426b
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534280
mov eax, 7
shl ecx, 9
jmp 0x53427d
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534241
mov edx, dword [esp + 0x28]
jmp 0x534327
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x534324
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x5342c3
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5342ca
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x534311
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534304
cmp ecx, 0x8f
jbe 0x5342fa
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53430f
mov eax, 7
shl ecx, 9
jmp 0x53430c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5342d0
mov edx, dword [esp + 0x28]
jmp 0x534327
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp + edi*4], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
shl edx, 0x16
or dword [ecx - 4], 0x100
or edx, 0x80
or ebp, edx
or dword [ecx + 4], 0x40
mov dword [esp + 0x40], ebp
test ebp, 0x8000400
jne 0x53468a
mov ecx, dword [edi + 0x6c]
mov edx, ebp
shr edx, 6
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x53442a
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5343bf
mov ecx, dword [edx + 8]
jmp 0x5343cf
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x534418
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x53440b
cmp ecx, 0x8f
jbe 0x534401
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534416
mov eax, 7
shl ecx, 9
jmp 0x534413
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5343d7
jmp 0x5344b2
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5344b6
cmp ebx, ebp
jae 0x534457
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53445e
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x5344a5
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534498
cmp ecx, 0x8f
jbe 0x53448e
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5344a3
mov eax, 7
shl ecx, 9
jmp 0x5344a0
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534464
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
test ecx, ecx
je 0x53468a
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x2000000
and edx, 0x800000
or edx, ecx
mov ecx, ebp
and ecx, 0x10000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 4
or edx, ecx
and ebp, 0x2a80
shr edx, 0xc
or edx, ebp
shr edx, 6
mov dword [esp + 0x24], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x5345ac
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53453d
mov ecx, dword [edx + 8]
jmp 0x53454d
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x534596
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534589
cmp ecx, 0x8f
jbe 0x53457f
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534594
mov eax, 7
shl ecx, 9
jmp 0x534591
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534555
mov edx, dword [esp + 0x28]
jmp 0x53463b
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x534638
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x5345d7
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5345de
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x534625
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534618
cmp ecx, 0x8f
jbe 0x53460e
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534623
mov eax, 7
shl ecx, 9
jmp 0x534620
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5345e4
mov edx, dword [esp + 0x28]
jmp 0x53463b
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x605dd8]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
neg ecx
test edx, edx
cmove ecx, dword [esp + 0x1c]
mov dword [ebp + edi*8], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
shl edx, 0x19
or dword [ecx - 4], 0x800
or edx, 0x400
or ebp, edx
or dword [ecx + 4], 0x200
mov dword [esp + 0x40], ebp
test ebp, 0x40002000
jne 0x53495d
mov ecx, dword [edi + 0x6c]
mov edx, ebp
shr edx, 9
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x534743
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5346d6
mov ecx, dword [edx + 8]
jmp 0x5346e6
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
nop
test eax, eax
jne 0x534731
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534724
cmp ecx, 0x8f
jbe 0x53471a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53472f
mov eax, 7
shl ecx, 9
jmp 0x53472c
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x5346f0
jmp 0x5347ce
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x5347d2
cmp ebx, ebp
jae 0x534770
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534777
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x5347c1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5347b4
cmp ecx, 0x8f
jbe 0x5347aa
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5347bf
mov eax, 7
shl ecx, 9
jmp 0x5347bc
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534780
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
test ecx, ecx
je 0x53495d
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x10000000
and edx, 0x4000000
or edx, ecx
mov ecx, ebp
and ecx, 0x81ffffff
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 4
or edx, ecx
and ebp, 0x15400
shr edx, 0xc
or edx, ebp
shr edx, 9
mov dword [esp + 0x24], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x5348c8
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x534859
mov ecx, dword [edx + 8]
jmp 0x534869
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, ebp
mov dword [edx], ecx
test eax, eax
jne 0x5348b2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5348a5
cmp ecx, 0x8f
jbe 0x53489b
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5348b0
mov eax, 7
shl ecx, 9
jmp 0x5348ad
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534871
mov edx, dword [esp + 0x28]
jmp 0x533c9d
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x533c9a
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x5348f5
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5348fc
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x534943
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534936
cmp ecx, 0x8f
jbe 0x53492c
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534941
mov eax, 7
shl ecx, 9
jmp 0x53493e
shl ecx, 8
mov eax, 8
mov dword [edi + 0x10], edx
add esi, ecx
add ebx, ebx
add esi, esi
dec eax
cmp ebx, 0x8000
jb 0x534902
mov edx, dword [esp + 0x28]
jmp 0x533c9d
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
and ebp, 0xb6dfffff
mov dword [ecx], ebp
jmp 0x53496f
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
add ecx, 4
mov edx, dword [esp + 0x18]
inc ebp
add edx, 4
mov dword [esp + 0x34], ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
cmp ebp, dword [esp + 0x20]
jb 0x532e78
mov ebp, dword [esp + 0x2c]
jmp 0x53499e
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x30]
add ecx, 8
mov dword [esp + 0x18], edx
add ebp, 4
mov edx, dword [edi + 0x80]
mov dword [esp + 0x14], ecx
mov ecx, edx
and ecx, 0xfffffffc
mov dword [esp + 0x2c], ebp
cmp ebp, ecx
jb 0x532e60
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov dword [edi + 0x68], ebp
mov dword [edi], esi
mov dword [edi + 4], ebx
mov dword [edi + 8], eax
cmp ecx, edx
jae 0x534a5e
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x534a5e
mov ebx, dword [esp + 0x18]
mov ecx, ebp
mov edx, dword [esp + 0x14]
sub ebx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], ebp
mov eax, dword [edi + 0x80]
xor esi, esi
sub eax, dword [esp + 0x2c]
je 0x534a48
shl ebp, 2
add ebx, edx
push 0
push esi
push dword [esp + 0x24]
push ebx
push edx
push edi
call fcn.005366d0
mov eax, dword [edi + 0x80]
inc esi
sub eax, dword [esp + 0x44]
add esp, 0x18
mov edx, dword [esp + 0x14]
add ebx, ebp
cmp esi, eax
jb 0x534a15
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
and dword [edx], 0xb6dfffff
add edx, 4
sub ecx, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], ecx
jne 0x534a02
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret