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

Disassembly:
sub esp, 0x58
mov edx, dword [esp + 0x64]
xor eax, eax
mov ecx, dword [esp + 0x6c]
push ebx
push ebp
push esi
xor esi, esi
mov dword [esp + 0x34], 0
push edi
mov dword [esp + 0x5c], esi
mov edi, edx
mov esi, dword [esp + 0x78]
mov ebx, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
test esi, esi
je 0x1000644b
test edx, edx
je 0x10006464
mov ebp, dword [esp + 0x80]
test ebp, ebp
je 0x1000645a
test ecx, ecx
je 0x10006464
test dword [esp + 0x70], 0x77fceff8
je 0x10006470
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret 0x18
test esi, esi
jns 0x10006483
mov ecx, edx
call fcn.10008580
mov esi, eax
mov ecx, ebx
mov dword [esp + 0x78], esi
test ebp, ebp
jns 0x1000648e
call fcn.10008580
mov ebp, eax
mov edx, dword [esp + 0x70]
mov ecx, edx
shr ecx, 0x10
mov eax, edx
and ecx, 3
and eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax*4 + 0x10096690]
mov dword [esp + 0x18], eax
call fcn.10005130
mov edx, eax
mov dword [esp + 0x6c], edx
test edx, edx
je 0x10006464
mov dword [esp + 0x48], 0
mov ecx, 0x20
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 7
test esi, esi
je 0x10006506
test ebp, ebp
je 0x10006506
mov ecx, dword [edx + 8]
mov eax, edi
movzx eax, word [eax]
mov eax, dword [ecx + eax*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
mov eax, ebx
movzx eax, word [eax]
jmp 0x10006573
mov eax, dword [esp + 0x70]
test eax, 0x8000000
je 0x1000740f
test esi, esi
jne 0x10006539
test ebp, ebp
je 0x10007426
lea edi, [esp + 0x54]
mov word [esp + 0x54], cx
mov esi, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x78], esi
jmp 0x1000654b
lea ebx, [esp + 0x58]
mov word [esp + 0x58], cx
mov ebp, 1
mov dword [esp + 0x14], ebx
mov ecx, 0x20
test esi, esi
je 0x10006506
test ebp, ebp
je 0x10006506
mov ecx, dword [edx + 8]
movzx eax, word [edi]
mov edx, dword [ecx + eax*4]
and edx, dword [esp + 0x18]
movzx eax, word [ebx]
mov dword [esp + 0x80], edx
mov dword [esp + 0x1c], edx
mov eax, dword [ecx + eax*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x10], 0
je 0x1000680d
cmp dword [esp + 0x48], 0
jne 0x100066df
test byte [esp + 0x1f], 0xc0
je 0x100066df
cmp dword [eax + 0x14], 0
je 0x100065e7
cmp esi, 1
jle 0x100065df
mov eax, dword [eax + 8]
movzx ecx, word [edi + 2]
mov eax, dword [eax + ecx*4]
xor eax, dword [esp + 0x80]
test eax, 0xe7ffffff
jne 0x100065df
lea ebx, [edi + 2]
mov dword [esp + 0x38], 1
dec esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x78], esi
jmp 0x100065eb
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
xor edi, edi
xor esi, esi
dec eax
je 0x10006601
dec eax
je 0x100065fd
movzx edi, word [ebx + 4]
movzx esi, word [ebx + 2]
mov edx, dword [esp + 0x6c]
movzx ecx, word [ebx]
mov edx, dword [edx + 0x18]
movzx eax, word [edx + 4]
test eax, eax
je 0x100066c1
cmp word [edx + 6], cx
jbe 0x10006628
add edx, 0x10
dec eax
jne 0x10006617
jmp 0x100066c1
test eax, eax
je 0x100066c1
cmp word [edx + 6], cx
jne 0x100066c1
cmp si, word [edx + 0xc]
jb 0x100066c1
cmp si, word [edx + 0xe]
ja 0x100066c1
mov eax, dword [esp + 0x6c]
movzx ecx, word [edx + 8]
mov eax, dword [eax + 0x1c]
lea eax, [eax + ecx*8]
movzx ecx, word [edx + 0xa]
test ecx, ecx
je 0x100066c1
cmp word [eax], si
jbe 0x1000666d
add eax, 8
dec ecx
jne 0x10006660
jmp 0x100066c1
test ecx, ecx
je 0x100066c1
cmp word [eax], si
jne 0x100066c1
movzx edx, word [eax + 2]
test dx, dx
je 0x1000669d
cmp dx, di
je 0x1000668c
add eax, 8
dec ecx
jne 0x10006671
jmp 0x100066c1
cmp dword [esp + 0x38], 0
jne 0x100066af
add ebx, 4
sub dword [esp + 0x78], 2
jmp 0x100066ab
cmp dword [esp + 0x38], 0
jne 0x100066af
add ebx, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], ebx
mov eax, dword [eax + 4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x80], eax
cmp dword [esp + 0x38], 0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
je 0x100066df
mov edi, dword [esp + 0x20]
sub edi, 2
inc dword [esp + 0x78]
mov dword [esp + 0x20], edi
cmp dword [esp + 0x4c], 0
jne 0x1000680d
test byte [esp + 0x2b], 0xc0
je 0x1000680d
cmp dword [eax + 0x14], 0
je 0x1000672f
cmp ebp, 1
jle 0x10006727
mov eax, dword [eax + 8]
movzx ecx, word [ebx + 2]
mov eax, dword [eax + ecx*4]
xor eax, dword [esp + 0x30]
test eax, 0xe7ffffff
jne 0x10006727
add ebx, 2
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], ebx
dec ebp
jmp 0x1000672f
mov dword [esp + 0x38], 0
mov eax, ebp
xor edi, edi
xor esi, esi
dec eax
je 0x10006743
dec eax
je 0x1000673f
movzx edi, word [ebx + 4]
movzx esi, word [ebx + 2]
mov eax, dword [esp + 0x6c]
movzx ecx, word [ebx]
mov edx, dword [eax + 0x18]
movzx eax, word [edx + 4]
test eax, eax
je 0x100067fe
lea esp, [esp]
cmp word [edx + 6], cx
jbe 0x10006771
add edx, 0x10
dec eax
jne 0x10006760
jmp 0x100067fe
test eax, eax
je 0x100067fe
cmp word [edx + 6], cx
jne 0x100067fe
cmp si, word [edx + 0xc]
jb 0x100067fe
cmp si, word [edx + 0xe]
ja 0x100067fe
mov eax, dword [esp + 0x6c]
movzx ecx, word [edx + 8]
mov eax, dword [eax + 0x1c]
lea eax, [eax + ecx*8]
movzx ecx, word [edx + 0xa]
test ecx, ecx
je 0x100067fe
cmp word [eax], si
jbe 0x100067b2
add eax, 8
dec ecx
jne 0x100067a5
jmp 0x100067fe
test ecx, ecx
je 0x100067fe
cmp word [eax], si
jne 0x100067fe
movzx edx, word [eax + 2]
test dx, dx
je 0x100067e0
cmp dx, di
je 0x100067d1
add eax, 8
dec ecx
jne 0x100067b6
jmp 0x100067fe
cmp dword [esp + 0x38], 0
jne 0x100067ef
add ebx, 4
sub ebp, 2
jmp 0x100067eb
cmp dword [esp + 0x38], 0
jne 0x100067ef
add ebx, 2
dec ebp
mov dword [esp + 0x14], ebx
mov eax, dword [eax + 4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x38], 0
je 0x1000680d
sub ebx, 2
inc ebp
mov dword [esp + 0x14], ebx
movzx esi, word [esp + 0x1c]
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x30]
shr ebx, 8
shr edx, 8
mov dword [esp + 0x44], esi
movzx esi, word [esp + 0x28]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
cmp bl, 0xb
jbe 0x10006846
cmp dl, 0xb
ja 0x1000726a
mov edi, dword [esp + 0x20]
xor ecx, ecx
test bl, bl
jne 0x1000687e
add edi, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], edi
je 0x10006879
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
mov ecx, 1
test dl, dl
jne 0x100068ae
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
dec ebp
je 0x100068a9
movzx ecx, word [eax]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov ecx, 1
test byte [esp + 0x70], 2
je 0x10006919
cmp bl, 1
jne 0x100068e8
add edi, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], edi
je 0x100068e3
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
mov ecx, 1
cmp dl, 1
jne 0x10006919
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
dec ebp
je 0x10006914
movzx ecx, word [eax]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov ecx, 1
test byte [esp + 0x70], 4
je 0x10006988
lea eax, [ebx - 6]
cmp al, 5
ja 0x10006955
add edi, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], edi
je 0x10006950
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
mov ecx, 1
lea eax, [edx - 6]
cmp al, 5
ja 0x10006988
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
dec ebp
je 0x10006983
movzx ecx, word [eax]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov ecx, 1
cmp bl, 2
jne 0x100069ee
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x5c], 2
cmove eax, edi
inc dword [esp + 0x78]
mov dword [esp + 0x48], eax
lea edi, [esp + 0x54]
movzx eax, byte [esp + 0x1c]
mov dword [esp + 0x20], edi
mov cx, word [eax*4 + str.AEUETHssaeuethIJijOEoeD]
mov ax, word [eax*4 + 0x100155aa]
mov word [esp + 0x56], ax
mov eax, dword [esp + 0x6c]
mov word [esp + 0x54], cx
movzx ecx, cx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov ecx, 1
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
cmp dl, 2
jne 0x10006a4d
mov eax, dword [esp + 0x4c]
lea ebx, [esp + 0x58]
mov edx, dword [esp + 0x6c]
test eax, eax
mov dword [esp + 0x60], 2
cmove eax, dword [esp + 0x14]
inc ebp
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0x28]
mov dword [esp + 0x14], ebx
mov cx, word [eax*4 + str.AEUETHssaeuethIJijOEoeD]
mov ax, word [eax*4 + 0x100155aa]
mov word [esp + 0x5a], ax
mov eax, dword [edx + 8]
mov word [esp + 0x58], cx
movzx ecx, cx
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
jmp 0x10006a59
test ecx, ecx
je 0x10006a77
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
mov ecx, 0x20
test esi, esi
je 0x10006506
test ebp, ebp
je 0x10006506
jmp 0x10006582
movzx eax, bl
dec eax
je 0x10006adb
sub eax, 5
jne 0x10006b60
test dword [esp + 0x70], 0x1000
jne 0x10006b60
cmp dl, 6
je 0x10006b60
mov eax, dword [esp + 0x10]
cmp eax, 6
jg 0x10006ab9
jne 0x10006b32
cmp dword [esp + 0x50], 0
jne 0x10006b32
jmp 0x10006ac1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 6
jmp 0x10006b32
cmp dl, bl
je 0x10006b60
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x6c]
jg 0x10006af4
cmp dword [ecx + 0xc], 0
je 0x10006b04
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x78]
dec eax
je 0x10006b32
mov edx, dword [ecx + 8]
mov ebx, dword [esp + 0x78]
movzx eax, word [edi + 2]
cmp byte [edx + eax*4 + 1], 1
jne 0x10006b26
dec ebx
add edi, 2
cmp ebx, 1
jne 0x10006b12
mov edx, dword [esp + 0x40]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x64]
add edi, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], edi
je 0x10006b5b
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
mov ecx, 1
movzx eax, dl
dec eax
je 0x10006c84
sub eax, 5
jne 0x10006cf5
test dword [esp + 0x70], 0x1000
jne 0x10006cf5
mov eax, dword [esp + 0x10]
cmp bl, 6
je 0x10006bec
cmp eax, 6
jg 0x10006bca
jne 0x10006b98
cmp dword [esp + 0x3c], 0
je 0x10006bd2
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
add ebx, 2
mov dword [esp + 0x14], ebx
dec ebp
je 0x10006cfd
movzx ecx, word [ebx]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4]
and eax, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
jmp 0x10006cfd
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 1
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], 6
jmp 0x10006b98
cmp eax, 6
jg 0x10006c1c
jne 0x10006c50
cmp dword [esp + 0x50], 0
je 0x10006c0b
cmp dword [esp + 0x3c], 0
jne 0x10006c50
mov dword [esp + 0x24], 1
jmp 0x10006c38
cmp dword [esp + 0x3c], 0
je 0x10006c1c
mov dword [esp + 0x24], 3
jmp 0x10006c38
mov al, byte [esp + 0x1c]
mov dl, byte [esp + 0x28]
cmp al, dl
je 0x10006cf5
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], 6
mov dword [esp + 0x3c], 1
mov dword [esp + 0x50], 1
add edi, 2
dec dword [esp + 0x78]
mov dword [esp + 0x20], edi
je 0x10006b98
mov edx, dword [esp + 0x6c]
movzx ecx, word [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4]
and eax, esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], eax
jmp 0x10006ba0
cmp dl, bl
je 0x10006cf5
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x6c]
jg 0x10006c9d
cmp dword [esi + 0xc], 0
je 0x10006cad
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x14]
lea eax, [ebp - 1]
test eax, eax
je 0x10006cd4
mov edx, dword [esi + 8]
jmp 0x10006cc0
movzx eax, word [ebx + 2]
cmp byte [edx + eax*4 + 1], 1
jne 0x10006cd4
dec ebp
add ebx, 2
cmp ebp, 1
jne 0x10006cc0
add ebx, 2
mov dword [esp + 0x14], ebx
dec ebp
je 0x10006cfd
movzx ecx, word [ebx]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
and eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
jmp 0x10006cfd
test ecx, ecx
je 0x10006d1f
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
mov ecx, 0x20
mov edx, dword [esp + 0x6c]
test esi, esi
je 0x10006506
test ebp, ebp
jne 0x10006582
jmp 0x10006506
cmp bl, 3
jne 0x10006fef
mov al, byte [esp + 0x1f]
xor ebx, ebx
and al, 0x3f
mov dword [esp + 0x2c], ebx
xor edx, edx
mov byte [esp + 0x80], al
cmp byte [esp + 0x1c], 1
ja 0x10006e39
lea esi, [edx + 2]
add edi, 0xfffffffe
mov edx, 0xffff0000
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x10006e7b
mov eax, dword [esp + 0x20]
sub eax, esi
cmp eax, ecx
jb 0x10006e7b
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*4]
and edx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x30], edx
shr eax, 8
cmp al, 3
jae 0x10006da0
mov edx, 0xffff0000
cmp al, 2
je 0x10006e7b
add esi, 2
sub edi, 2
jmp 0x10006d53
jne 0x10006e2e
mov al, byte [esp + 0x30]
cmp al, 1
ja 0x10006db6
add esi, 2
sub edi, 2
jmp 0x10006d4e
mov edx, dword [esp + 0x6c]
mov cl, byte [esp + 0x33]
movzx eax, al
and cl, 0x3f
mov dx, word [edx + 0x20]
shl dx, 8
or dx, ax
mov al, cl
and al, 0xc6
mov word [esp + 0x30], dx
mov byte [esp + 0x2c], al
mov al, cl
and al, 0xe4
mov byte [esp + 0x2e], al
cmp byte [esp + 0x1c], bl
jne 0x10006e0a
and cl, 0xc5
movzx esi, dx
mov edx, dword [esp + 0x30]
mov byte [esp + 0x2d], 4
mov byte [esp + 0x2f], cl
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x44], esi
jmp 0x10006e82
mov edx, dword [esp + 0x30]
mov esi, edx
mov al, byte [esp + 0x80]
and esi, 0xff87
and al, 0xc5
mov dword [esp + 0x44], esi
mov byte [esp + 0x2d], 5
mov byte [esp + 0x2f], al
jmp 0x10006e77
movzx esi, word [esp + 0x30]
mov dword [esp + 0x44], esi
jmp 0x10006e7b
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x2d], 3
mov cx, word [eax + 0x20]
movzx eax, byte [esp + 0x1c]
shl cx, 8
or cx, ax
movzx eax, cx
mov cl, byte [esp + 0x80]
mov dword [esp + 0x44], eax
mov al, cl
and al, 0xc6
mov byte [esp + 0x2c], al
mov al, cl
and al, 0xe4
and cl, 0xc5
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], cl
mov ebx, dword [esp + 0x2c]
cmp byte [esp + 0x1c], 1
ja 0x10006e9e
cmp edx, 0xffff0000
jne 0x10006e9e
xor ebx, ebx
mov dword [esp + 0x44], 0xffff
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ebx
jmp 0x10006ea3
mov byte [esp + 0x1f], 2
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
cmp edx, 2
jle 0x10006edb
cmp cl, 3
je 0x10006ee8
cmp byte [esp + 0x2c], 0
je 0x10006f71
test byte [esp + 0x70], 2
jne 0x10006f71
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 2
mov esi, dword [esp + 0x34]
cmp cl, 3
jne 0x1000726a
mov al, byte [esp + 0x2b]
xor ebx, ebx
and al, 0x3f
mov dword [esp + 0x30], ebx
xor edx, edx
mov byte [esp + 0x80], al
cmp byte [esp + 0x28], 1
ja 0x10007095
mov eax, dword [esp + 0x14]
lea esi, [edx + 2]
lea edi, [eax - 2]
mov edx, 0xffff0000
jmp 0x10006f20
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x10007015
sub eax, esi
cmp eax, ecx
jb 0x10007015
mov eax, dword [esp + 0x6c]
movzx ecx, word [edi]
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*4]
and edx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x40], edx
shr eax, 8
cmp al, 3
jae 0x10006ff8
mov edx, 0xffff0000
cmp al, 2
je 0x10007015
mov eax, dword [esp + 0x14]
add esi, 2
sub edi, 2
jmp 0x10006f20
cmp edx, 3
jle 0x10006edb
mov eax, ebx
shr eax, 8
test al, al
je 0x10006f9f
test byte [esp + 0x70], 2
jne 0x10006f9f
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 3
jmp 0x10006edb
cmp edx, 4
jle 0x10006edb
mov eax, ebx
shr eax, 0x10
test al, al
je 0x10006fc6
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 4
jmp 0x10006edb
cmp edx, 5
jle 0x10006edb
shr ebx, 0x18
test bl, bl
je 0x10006edb
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 5
jmp 0x10006edb
mov ecx, dword [esp + 0x40]
jmp 0x10006edf
jne 0x1000708e
mov al, byte [esp + 0x40]
cmp al, 1
ja 0x1000701e
mov eax, dword [esp + 0x14]
add esi, 2
sub edi, 2
jmp 0x10006f12
mov esi, dword [esp + 0x34]
jmp 0x100070d3
mov edx, dword [esp + 0x6c]
mov cl, byte [esp + 0x43]
movzx eax, al
and cl, 0x3f
mov dx, word [edx + 0x20]
shl dx, 8
or dx, ax
mov al, cl
and al, 0xc6
mov word [esp + 0x40], dx
mov byte [esp + 0x30], al
mov al, cl
and al, 0xe4
mov byte [esp + 0x32], al
cmp byte [esp + 0x28], bl
jne 0x1000706e
and cl, 0xc5
mov byte [esp + 0x31], 4
mov byte [esp + 0x33], cl
mov ebx, dword [esp + 0x30]
movzx esi, dx
mov edx, dword [esp + 0x40]
jmp 0x100070da
mov edx, dword [esp + 0x40]
mov esi, edx
mov al, byte [esp + 0x80]
and esi, 0xff87
and al, 0xc5
mov byte [esp + 0x31], 5
mov byte [esp + 0x33], al
jmp 0x100070cf
movzx esi, word [esp + 0x40]
jmp 0x100070d3
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x31], 3
mov cx, word [eax + 0x20]
movzx eax, byte [esp + 0x28]
shl cx, 8
or cx, ax
movzx esi, cx
mov cl, byte [esp + 0x80]
mov al, cl
and al, 0xc6
mov byte [esp + 0x30], al
mov al, cl
and al, 0xe4
and cl, 0xc5
mov byte [esp + 0x32], al
mov byte [esp + 0x33], cl
mov ebx, dword [esp + 0x30]
cmp byte [esp + 0x28], 1
ja 0x100070f3
cmp edx, 0xffff0000
jne 0x100070f3
xor ebx, ebx
mov dword [esp + 0x28], edx
mov esi, 0xffff
mov dword [esp + 0x30], ebx
jmp 0x100070f8
mov byte [esp + 0x2b], 2
mov edx, dword [esp + 0x10]
cmp edx, 2
jle 0x1000726e
cmp byte [esp + 0x64], 3
je 0x100071b5
cmp byte [esp + 0x30], 0
mov ecx, dword [esp + 0x70]
je 0x10007136
test cl, 2
jne 0x10007136
mov edx, 2
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edx
jmp 0x1000726e
cmp edx, 3
jle 0x1000726e
mov eax, ebx
shr eax, 8
test al, al
je 0x10007163
test cl, 2
jne 0x10007163
mov edx, 3
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edx
jmp 0x1000726e
cmp edx, 4
jle 0x1000726e
mov eax, ebx
shr eax, 0x10
test al, al
je 0x1000718b
mov edx, 4
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edx
jmp 0x1000726e
cmp edx, 5
jle 0x1000726e
shr ebx, 0x18
test bl, bl
je 0x1000726e
mov edx, 5
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edx
jmp 0x1000726e
mov al, byte [esp + 0x2c]
mov cl, byte [esp + 0x30]
cmp al, cl
je 0x100071e4
test byte [esp + 0x70], 2
jne 0x100071e4
cmp al, cl
mov edx, 2
mov dword [esp + 0x10], edx
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 3
mov dword [esp + 0x24], ecx
jmp 0x1000726e
cmp edx, 3
jle 0x1000726e
mov cl, byte [esp + 0x2d]
mov eax, ebx
shr eax, 8
cmp cl, al
je 0x1000721a
test byte [esp + 0x70], 2
jne 0x1000721a
cmp cl, al
mov edx, 3
mov dword [esp + 0x10], edx
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 3
mov dword [esp + 0x24], ecx
jmp 0x1000726e
cmp edx, 4
jle 0x1000726e
mov cl, byte [esp + 0x2e]
mov eax, ebx
shr eax, 0x10
cmp cl, al
je 0x10007243
sbb ecx, ecx
mov edx, 4
and ecx, 0xfffffffe
mov dword [esp + 0x10], edx
add ecx, 3
mov dword [esp + 0x24], ecx
jmp 0x1000726e
cmp edx, 5
jle 0x1000726e
mov al, byte [esp + 0x2f]
shr ebx, 0x18
cmp al, bl
je 0x1000726e
sbb ecx, ecx
mov edx, 5
and ecx, 0xfffffffe
mov dword [esp + 0x10], edx
add ecx, 3
mov dword [esp + 0x24], ecx
jmp 0x1000726e
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
cmp ax, si
jne 0x100073fd
test byte [esp + 0x70], 2
jne 0x1000736e
test edx, edx
mov edx, dword [esp + 0x6c]
jg 0x10007298
cmp dword [edx + 0xc], 0
je 0x10007372
cmp dword [esp + 0x48], 0
movzx eax, byte [esp + 0x1e]
mov dword [esp + 0x80], eax
movzx eax, byte [esp + 0x2a]
mov dword [esp + 0x64], eax
jne 0x100072fd
mov ebx, dword [esp + 0x78]
lea eax, [ebx - 1]
test eax, eax
je 0x100072fd
mov esi, dword [edx + 8]
mov di, word [esp + 0x80]
mov eax, dword [esp + 0x20]
mov edi, edi
lea edx, [eax + 2]
movzx eax, word [edx]
mov ecx, dword [esi + eax*4]
mov eax, ecx
shr eax, 8
cmp al, 1
jne 0x10007305
shr ecx, 0x10
dec ebx
movzx eax, cl
add di, ax
mov dword [esp + 0x78], ebx
mov eax, edx
mov dword [esp + 0x20], eax
cmp ebx, 1
jne 0x100072d0
jmp 0x10007305
mov di, word [esp + 0x80]
cmp dword [esp + 0x4c], 0
jne 0x1000734c
lea eax, [ebp - 1]
test eax, eax
je 0x1000734c
mov eax, dword [esp + 0x6c]
mov si, word [esp + 0x64]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x14]
lea edx, [eax + 2]
movzx eax, word [edx]
mov ecx, dword [ebx + eax*4]
mov eax, ecx
shr eax, 8
cmp al, 1
jne 0x10007351
shr ecx, 0x10
dec ebp
movzx eax, cl
add si, ax
mov eax, edx
mov dword [esp + 0x14], eax
cmp ebp, 1
jne 0x10007323
jmp 0x10007351
mov si, word [esp + 0x64]
mov edx, dword [esp + 0x6c]
cmp di, si
je 0x10007372
sbb esi, esi
and esi, 0xfffffffe
add esi, 3
xor ebx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], ebx
jmp 0x10007376
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
test al, 1
jne 0x100073a8
cmp ebx, 1
jle 0x100073a8
mov al, byte [esp + 0x2b]
mov cl, byte [esp + 0x1f]
and al, 0x3f
and cl, 0x3f
cmp cl, al
je 0x100073a8
sbb eax, eax
mov dword [esp + 0x10], 1
and eax, 0xfffffffe
add eax, 3
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x100073c2
dec dword [esp + 0x5c]
jne 0x100073c2
mov edi, eax
mov dword [esp + 0x48], 0
jmp 0x100073c6
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x100073e0
dec dword [esp + 0x60]
jne 0x100073e0
mov ebx, ecx
mov dword [esp + 0x4c], 0
jmp 0x100073e4
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
add edi, 2
dec esi
mov dword [esp + 0x20], edi
add ebx, 2
mov dword [esp + 0x78], esi
dec ebp
jmp 0x10006547
pop edi
sbb eax, eax
pop esi
and eax, 0xfffffffe
pop ebp
add eax, 3
pop ebx
add esp, 0x58
ret 0x18
test esi, esi
jne 0x1000742d
test ebp, ebp
je 0x10007426
test eax, eax
js 0x10007426
mov edi, ebx
mov esi, ebp
mov ecx, 1
jmp 0x10007432
cmp dword [esp + 0x10], 7
jmp 0x10007490
mov ecx, 3
test esi, esi
je 0x10007489
mov edx, dword [edx + 8]
lea esp, [esp]
movzx eax, word [edi]
movzx eax, byte [edx + eax*4 + 1]
cmp eax, 0xb
ja case.0x10007454.2
movzx eax, byte [eax + 0x100074b8]
jmp dword [eax*4 + 0x100074a8]
test byte [esp + 0x70], 2
mov eax, dword [esp + 0x10]
jne 0x10007481
test eax, eax
jle 0x10007481
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x58
ret 0x18
test byte [esp + 0x70], 4
je case.0x10007454.2
mov eax, dword [esp + 0x10]
add edi, 2
dec esi
jne 0x10007440
jmp 0x1000748d
mov eax, dword [esp + 0x10]
cmp eax, 7
mov eax, dword [esp + 0x24]
mov ecx, 2
pop edi
pop esi
pop ebp
cmove eax, ecx
pop ebx
add esp, 0x58
ret 0x18