Function at 0x534a80
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]
add eax, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
lea ecx, [eax + ecx*4]
mov eax, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
shl edx, cl
mov ecx, edx
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 0x53661f
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
lea edx, [ecx + ecx*2]
shl edx, 2
mov dword [esp + 0x30], edx
jmp 0x534b04
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x5365ea
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x53598f
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 0x534bb5
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
cmp ebx, ebp
jae 0x534b4a
mov ecx, dword [edx + 8]
jmp 0x534b5a
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 0x534ba3
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534b96
cmp ecx, 0x8f
jbe 0x534b8c
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534ba1
mov eax, 7
shl ecx, 9
jmp 0x534b9e
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 0x534b62
jmp 0x534c3e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x534c42
cmp ebx, ebp
jae 0x534bde
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534be5
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop dword [eax + eax]
test eax, eax
jne 0x534c31
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534c24
cmp ecx, 0x8f
jbe 0x534c1a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534c2f
mov eax, 7
shl ecx, 9
jmp 0x534c2c
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 0x534bf0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x5365bf
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 0x534ce3
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
cmp ebx, ebp
jae 0x534c75
mov ecx, dword [edx + 8]
jmp 0x534c85
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 0x534cd1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534cc4
cmp ecx, 0x8f
jbe 0x534cba
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534ccf
mov eax, 7
shl ecx, 9
jmp 0x534ccc
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 0x534c90
jmp 0x534d74
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x534d70
cmp ebx, ebp
jae 0x534d0c
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534d13
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 0x534d61
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534d54
cmp ecx, 0x8f
jbe 0x534d4a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534d5f
mov eax, 7
shl ecx, 9
jmp 0x534d5c
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 0x534d20
jmp 0x534d74
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 0x534e06
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x534d9b
mov ecx, dword [edx + 8]
jmp 0x534dab
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 0x534df4
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534de7
cmp ecx, 0x8f
jbe 0x534ddd
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534df2
mov eax, 7
shl ecx, 9
jmp 0x534def
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 0x534db3
jmp 0x534e94
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x534e90
cmp ebx, ebp
jae 0x534e33
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534e3a
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x534e81
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534e74
cmp ecx, 0x8f
jbe 0x534e6a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534e7f
mov eax, 7
shl ecx, 9
jmp 0x534e7c
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 0x534e40
jmp 0x534e94
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
add ecx, ecx
or ecx, dword [esp + 0x28]
cmp ecx, 3
ja case.default.0x534ea7
jmp dword [ecx*4 + 0x5366b8]
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 + 0x24], edx
movzx ecx, byte [edx + 0x605cd8]
add ecx, 7
mov edx, dword [edi + ecx*4]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x28], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x534f77
cmp ebx, ebp
jae 0x534f05
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 8]
jmp 0x534f14
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x28]
mov ebx, ebp
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x534f61
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534f54
cmp ecx, 0x8f
jbe 0x534f4a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534f5f
mov eax, 7
shl ecx, 9
jmp 0x534f5c
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 0x534f20
mov edx, dword [esp + 0x40]
jmp 0x535007
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535004
cmp ebx, ebp
jae 0x534f9f
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
jmp 0x534fa9
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x28]
mov dword [edx], ecx
nop
test eax, eax
jne 0x534ff1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x534fe4
cmp ecx, 0x8f
jbe 0x534fda
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x534fef
mov eax, 7
shl ecx, 9
jmp 0x534fec
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 0x534fb0
mov edx, dword [esp + 0x40]
jmp 0x535007
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
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], ecx
mov ecx, dword [esp + 0x14]
shl edx, 0x13
or edx, 0x10
mov dword [esp + 0x40], edx
or dword [ecx - 4], 0x20
or dword [ecx + 4], 8
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 0x5350e3
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x535078
mov ecx, dword [edx + 8]
jmp 0x535088
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 0x5350d1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5350c4
cmp ecx, 0x8f
jbe 0x5350ba
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5350cf
mov eax, 7
shl ecx, 9
jmp 0x5350cc
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 0x535090
jmp 0x53516e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x535172
cmp ebx, ebp
jae 0x535110
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x535117
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
nop dword [eax]
test eax, eax
jne 0x535161
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535154
cmp ecx, 0x8f
jbe 0x53514a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53515f
mov eax, 7
shl ecx, 9
jmp 0x53515c
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 0x535120
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x535347
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 0x535268
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5351f9
mov ecx, dword [edx + 8]
jmp 0x535209
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 0x535252
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535245
cmp ecx, 0x8f
jbe 0x53523b
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535250
mov eax, 7
shl ecx, 9
jmp 0x53524d
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 0x535211
mov edx, dword [esp + 0x28]
jmp 0x5352f9
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x5352f6
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x535295
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53529c
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x5352e3
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5352d6
cmp ecx, 0x8f
jbe 0x5352cc
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5352e1
mov eax, 7
shl ecx, 9
jmp 0x5352de
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 0x5352a2
mov edx, dword [esp + 0x28]
jmp 0x5352f9
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 0x53534b
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 0x5353f6
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53538b
mov ecx, dword [edx + 8]
jmp 0x53539b
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 0x5353e4
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5353d7
cmp ecx, 0x8f
jbe 0x5353cd
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5353e2
mov eax, 7
shl ecx, 9
jmp 0x5353df
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 0x5353a3
jmp 0x53547e
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x535482
cmp ebx, ebp
jae 0x535423
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53542a
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x535471
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535464
cmp ecx, 0x8f
jbe 0x53545a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53546f
mov eax, 7
shl ecx, 9
jmp 0x53546c
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 0x535430
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x53565a
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 0x535578
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x535509
mov ecx, dword [edx + 8]
jmp 0x535519
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 0x535562
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535555
cmp ecx, 0x8f
jbe 0x53554b
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535560
mov eax, 7
shl ecx, 9
jmp 0x53555d
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 0x535521
mov edx, dword [esp + 0x28]
jmp 0x535609
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535606
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x5355a5
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5355ac
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
jne 0x5355f3
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5355e6
cmp ecx, 0x8f
jbe 0x5355dc
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5355f1
mov eax, 7
shl ecx, 9
jmp 0x5355ee
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 0x5355b2
mov edx, dword [esp + 0x28]
jmp 0x535609
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 0x53565e
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 0x535709
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53569e
mov ecx, dword [edx + 8]
jmp 0x5356ae
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 0x5356f7
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5356ea
cmp ecx, 0x8f
jbe 0x5356e0
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5356f5
mov eax, 7
shl ecx, 9
jmp 0x5356f2
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 0x5356b6
jmp 0x535791
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x535795
cmp ebx, ebp
jae 0x535736
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53573d
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x535784
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535777
cmp ecx, 0x8f
jbe 0x53576d
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535782
mov eax, 7
shl ecx, 9
jmp 0x53577f
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 0x535743
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.default.0x534ea7
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 0x53588b
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53581c
mov ecx, dword [edx + 8]
jmp 0x53582c
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 0x535875
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535868
cmp ecx, 0x8f
jbe 0x53585e
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535873
mov eax, 7
shl ecx, 9
jmp 0x535870
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 0x535834
mov edx, dword [esp + 0x28]
jmp 0x53591c
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535919
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x5358b8
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5358bf
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x535906
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5358f9
cmp ecx, 0x8f
jbe 0x5358ef
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535904
mov eax, 7
shl ecx, 9
jmp 0x535901
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 0x5358c5
mov edx, dword [esp + 0x28]
jmp 0x53591c
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, edx
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x3c]
shl ecx, 0x1c
or ecx, 0x2000
shl edx, 0x12
or dword [ebp - 4], 0x4000
or edx, 2
or dword [ebp + 4], 0x1000
or dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x7c]
or dword [ebp + ecx*4 + 8], edx
or dword [ebp + ecx*4 + 4], 4
or dword [ebp + ecx*4 + 0xc], 1
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x5365c3
test ecx, 0x200010
jne 0x535c9b
mov edx, ecx
mov ecx, dword [edi + 0x6c]
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 0x535a43
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5359d8
mov ecx, dword [edx + 8]
jmp 0x5359e8
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 0x535a31
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535a24
cmp ecx, 0x8f
jbe 0x535a1a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535a2f
mov eax, 7
shl ecx, 9
jmp 0x535a2c
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 0x5359f0
jmp 0x535ace
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x535ad2
cmp ebx, ebp
jae 0x535a70
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x535a77
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov ebp, dword [esp + 0x10]
mov dword [ebp], ecx
nop
test eax, eax
jne 0x535ac1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535ab4
cmp ecx, 0x8f
jbe 0x535aaa
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535abf
mov eax, 7
shl ecx, 9
jmp 0x535abc
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 0x535a80
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x535c97
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, 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 + 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 0x535bc7
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x535b56
mov ecx, dword [edx + 8]
jmp 0x535b66
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 0x535bb1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535ba4
cmp ecx, 0x8f
jbe 0x535b9a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535baf
mov eax, 7
shl ecx, 9
jmp 0x535bac
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 0x535b70
mov edx, dword [esp + 0x28]
jmp 0x535c58
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535c55
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x535bf4
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x535bfb
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x535c42
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535c35
cmp ecx, 0x8f
jbe 0x535c2b
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535c40
mov eax, 7
shl ecx, 9
jmp 0x535c3d
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 0x535c01
mov edx, dword [esp + 0x28]
jmp 0x535c58
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
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], ecx
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
shl edx, 0x13
or edx, 0x10
or dword [ebp - 4], 0x20
or ecx, edx
or dword [ebp + 4], 8
mov dword [esp + 0x40], ecx
jmp 0x535c9b
mov ecx, dword [esp + 0x40]
test ecx, 0x1000080
jne 0x535fbb
mov edx, ecx
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 + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x535d53
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x535ce7
mov ecx, dword [edx + 8]
jmp 0x535cf7
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 0x535d41
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535d34
cmp ecx, 0x8f
jbe 0x535d2a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535d3f
mov eax, 7
shl ecx, 9
jmp 0x535d3c
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 0x535d00
jmp 0x535dde
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x535de2
cmp ebx, ebp
jae 0x535d80
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x535d87
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 0x535dd1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535dc4
cmp ecx, 0x8f
jbe 0x535dba
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535dcf
mov eax, 7
shl ecx, 9
jmp 0x535dcc
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 0x535d90
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x535fb7
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 + 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 0x535ed8
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x535e69
mov ecx, dword [edx + 8]
jmp 0x535e79
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 0x535ec2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535eb5
cmp ecx, 0x8f
jbe 0x535eab
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535ec0
mov eax, 7
shl ecx, 9
jmp 0x535ebd
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 0x535e81
mov edx, dword [esp + 0x28]
jmp 0x535f69
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535f66
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x535f05
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x535f0c
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x535f53
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x535f46
cmp ecx, 0x8f
jbe 0x535f3c
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x535f51
mov eax, 7
shl ecx, 9
jmp 0x535f4e
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 0x535f12
mov edx, dword [esp + 0x28]
jmp 0x535f69
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 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 0x535fbb
mov ecx, dword [esp + 0x40]
test ecx, 0x8000400
jne 0x5362de
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 + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x536073
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x536007
mov ecx, dword [edx + 8]
jmp 0x536017
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 0x536061
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x536054
cmp ecx, 0x8f
jbe 0x53604a
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x53605f
mov eax, 7
shl ecx, 9
jmp 0x53605c
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 0x536020
jmp 0x5360fe
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x536102
cmp ebx, ebp
jae 0x5360a0
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5360a7
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 0x5360f1
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5360e4
cmp ecx, 0x8f
jbe 0x5360da
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5360ef
mov eax, 7
shl ecx, 9
jmp 0x5360ec
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 0x5360b0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x5362da
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 + 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 0x5361f8
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x536189
mov ecx, dword [edx + 8]
jmp 0x536199
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 0x5361e2
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5361d5
cmp ecx, 0x8f
jbe 0x5361cb
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x5361e0
mov eax, 7
shl ecx, 9
jmp 0x5361dd
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 0x5361a1
mov edx, dword [esp + 0x28]
jmp 0x536289
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x536286
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x536225
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53622c
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x536273
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x536266
cmp ecx, 0x8f
jbe 0x53625c
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x536271
mov eax, 7
shl ecx, 9
jmp 0x53626e
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 0x536232
mov edx, dword [esp + 0x28]
jmp 0x536289
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 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 0x5362e2
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
test ecx, 0x40002000
jne 0x5365b4
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 0x536399
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x53632e
mov ecx, dword [edx + 8]
jmp 0x53633e
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 0x536387
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x53637a
cmp ecx, 0x8f
jbe 0x536370
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x536385
mov eax, 7
shl ecx, 9
jmp 0x536382
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 0x536346
jmp 0x536421
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
mov ecx, dword [edx + 4]
test ebx, 0x8000
jne 0x536425
cmp ebx, ebp
jae 0x5363c6
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x5363cd
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x536414
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x536407
cmp ecx, 0x8f
jbe 0x5363fd
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x536412
mov eax, 7
shl ecx, 9
jmp 0x53640f
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 0x5363d3
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.default.0x534ea7
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 0x53651b
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
cmp ebx, ebp
jae 0x5364ac
mov ecx, dword [edx + 8]
jmp 0x5364bc
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 0x536505
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x5364f8
cmp ecx, 0x8f
jbe 0x5364ee
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x536503
mov eax, 7
shl ecx, 9
jmp 0x536500
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 0x5364c4
mov edx, dword [esp + 0x28]
jmp 0x53591c
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x535919
mov ecx, dword [edx + 4]
cmp ebx, ebp
jae 0x536548
test ecx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0xc]
jmp 0x53654f
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test eax, eax
jne 0x536596
mov eax, dword [edi + 0x10]
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp byte [eax], 0xff
jne 0x536589
cmp ecx, 0x8f
jbe 0x53657f
inc dword [edi + 0xc]
mov eax, 8
mov ecx, 0xff00
jmp 0x536594
mov eax, 7
shl ecx, 9
jmp 0x536591
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 0x536555
mov edx, dword [esp + 0x28]
jmp 0x53591c
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0xb6dfffff
mov dword [ebp], ecx
jmp 0x5365c3
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
add ebp, 4
mov ecx, dword [esp + 0x18]
inc edx
add ecx, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
cmp edx, dword [esp + 0x20]
jb 0x534b14
jmp 0x5365ee
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x30]
add ebp, 8
mov edx, dword [edi + 0x80]
add dword [esp + 0x2c], 4
mov dword [esp + 0x18], ecx
mov ecx, edx
and ecx, 0xfffffffc
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x2c], ecx
jb 0x534b00
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 0x5366ae
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x5366ae
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 0x536698
shl ebp, 2
add ebx, edx
push 1
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 0x536665
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 0x536652
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret