Function at 0x10003373
Capabilities:
Encode data using base64
Encrypt data using speck
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
mov ebx, ecx
xor eax, eax
push esi
mov esi, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
mov edx, eax
mov ecx, eax
shr edx, 0xa
shr ecx, 0x1f
and edx, 0x7f
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0xc], edx
push edi
mov edi, dword [ebx + 4]
mov dword [esp + 0x20], edi
test ecx, 0x7f000000
je 0x1000284a
xor eax, eax
jmp 0x1000413c
cmp dword [ebp + 0xc], 0
jne 0x100028af
test edx, edx
jle 0x10002898
cmp edx, 2
jle 0x10002843
cmp edx, 4
je 0x10002843
cmp edx, 0x12
je 0x10002843
cmp edx, 0x3f
jne 0x10002898
cmp dword [esi + 0x1c], 0
je 0x10002843
and eax, 0xfffeffff
or eax, 0xfc00
push ebx
mov dword [ebx], eax
call dword [esi + 0x1c]
pop ecx
test eax, eax
je 0x10002843
mov eax, dword [ebx + 0x14]
and eax, 0x87ffffff
mov dword [ebx + 4], edi
or eax, 0x7000000
mov dword [ebx + 0x14], eax
jmp 0x10002843
and ecx, 0x8bffffff
xor eax, eax
or ecx, 0xb000000
inc eax
mov dword [ebx + 0x14], ecx
jmp 0x1000413c
mov ecx, dword [ebp + 8]
xor eax, eax
cmp edx, 0x2d
cmove eax, ecx
mov dword [esp + 0x38], eax
xor eax, eax
cmp edx, 0x32
cmove eax, ecx
mov dword [esp + 0x24], eax
cmp edx, 0x10
je 0x100028dd
lea eax, [edx - 0x15]
cmp eax, 0xa
ja 0x100028e1
mov dword [esp + 0x30], ecx
jmp 0x100028e1
mov dword [esp + 0x34], ecx
mov eax, dword [ebp + 0xc]
mov esi, ecx
add eax, ecx
mov dword [esp + 0x14], eax
cmp ecx, eax
jmp 0x10003f67
mov cl, byte [esi]
mov byte [esp + 0xf], cl
cmp edx, 0x3a
jg 0x1000290f
inc edi
mov dword [esp + 0x20], edi
cmp edi, 0x14000
ja 0x10003da1
lea eax, [edx - 1]
cmp eax, 0x3f
ja case.default.0x1000291b
jmp dword [eax*4 + 0x10004730]
cmp cl, 0xd
je 0x10003f62
cmp cl, 0xa
je 0x10003f62
and dword [ebx], 0x9ffffc03
or dword [ebx + 8], 0xffffffff
or dword [ebx + 0xc], 0xffffffff
mov eax, dword [ebx]
cmp cl, 0x48
je 0x1000318f
and eax, 0xfffffffc
push 0x12
mov dword [ebx], eax
pop eax
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x1000290f
push 0x30
pop eax
cmp cl, al
jl 0x1000296d
cmp cl, 0x39
jle 0x100031ed
cmp cl, 0xa
je 0x1000297b
cmp cl, 0xd
jne 0x10003221
push 0xf
jmp 0x10002e95
mov eax, dword [esp + 0x34]
test eax, eax
push 0x10
cmove eax, esi
and dword [ebx], 0xe0ffffff
mov dword [esp + 0x38], eax
pop edx
mov dword [esp + 0x10], edx
cmp cl, 0xd
je 0x1000290f
cmp cl, 0xa
je 0x1000290f
jmp 0x10003f62
cmp cl, 0xd
je 0x100032be
cmp cl, 0xa
jne 0x1000322d
push 0x39
jmp 0x10002e95
mov ecx, dword [ebx]
mov eax, dword [esp + 0x14]
shr ecx, 0x11
and ecx, 0x7f
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], ecx
cmp esi, eax
je 0x1000334c
mov al, byte [esi]
mov byte [esp + 0xf], al
cmp al, 0xd
je 0x100032c5
cmp al, 0xa
je 0x10002dbc
cmp dword [esp + 0x3c], 0
jne 0x10002a19
cmp al, 9
je 0x10002a19
cmp al, 0x1f
jbe 0x1000459f
cmp al, 0x7f
je 0x1000459f
push 0x11
mov ah, al
or ah, 0x20
pop edi
mov byte [esp + 0xf], ah
cmp ecx, edi
jg 0x10002c30
je 0x10002c12
cmp ecx, 0xc
jg 0x10002b6e
je 0x10002b3f
mov edi, ecx
sub edi, 0
je 0x10002aea
sub edi, 9
je 0x10002a65
dec edi
je 0x10002a73
dec edi
je 0x10002a7e
push 0x32
pop edx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x40], esi
jmp 0x100029e0
cmp al, 0x20
je 0x10002a65
push 0xb
pop ecx
mov dword [esp + 0x1c], ecx
cmp al, 0x20
jne 0x10002a87
push 0xc
pop ecx
jmp 0x10002a61
cmp al, 0x30
jl 0x100045b5
cmp al, 0x39
jg 0x100045b5
cmp dword [ebx + 0xc], 0x19999999
ja 0x100045b5
jb 0x10002ab3
cmp dword [ebx + 8], 0x99999998
ja 0x100045b5
push 0x30
pop ecx
push 0
push 0xa
push dword [ebx + 0xc]
movsx eax, al
push dword [ebx + 8]
sub eax, ecx
cdq
mov esi, eax
mov edi, edx
call fcn.100326a0
mov ecx, dword [esp + 0x1c]
add esi, eax
mov dword [ebx + 8], esi
mov esi, dword [esp + 0x40]
adc edi, edx
mov edx, dword [esp + 0x10]
mov dword [ebx + 0xc], edi
jmp 0x10002a65
mov eax, dword [ebp + 8]
mov edi, 0x14000
sub eax, esi
add eax, dword [ebp + 0xc]
cmp eax, edi
cmovb edi, eax
add edi, esi
jmp 0x10002b26
mov al, byte [esi]
cmp al, 0xd
je 0x10002b2c
cmp al, 0xa
je 0x10002b2c
cmp dword [esp + 0x3c], 0
jne 0x10002b25
cmp al, 9
je 0x10002b25
cmp al, 0x1f
jbe 0x1000459f
cmp al, 0x7f
je 0x1000459f
inc esi
cmp esi, edi
jne 0x10002b00
jmp 0x10002b2d
dec esi
mov eax, dword [esp + 0x14]
cmp esi, eax
jne 0x10002a69
dec esi
jmp 0x10002a69
cmp al, 0x20
je 0x10002a65
mov eax, dword [ebx + 0x14]
mov edi, dword [esp + 0x20]
and eax, 0x99ffffff
or eax, 0x19000000
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
and eax, 0xff19ffff
or eax, 0x180000
mov dword [ebx], eax
jmp 0x10004701
mov eax, ecx
sub eax, 0xd
je 0x10002a65
dec eax
dec eax
je 0x10002bd1
dec eax
jne case.default.0x10002c3c
mov eax, dword [ebx]
and eax, 0xff000000
add eax, 0x1000000
xor eax, dword [ebx]
and eax, 0x1f000000
xor eax, dword [ebx]
mov dword [ebx], eax
shr eax, 0x18
and eax, 0x1f
cmp eax, 7
ja 0x10002bca
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.chunked]
mov ebx, dword [esp + 0x2c]
jne 0x10002bca
cmp eax, 6
mov eax, dword [esp + 0x14]
jne 0x10002a69
push 0x17
jmp 0x10002d82
mov ecx, edi
jmp 0x10002a61
mov al, byte [esp + 0xf]
cmp al, 0x63
jne 0x10002be0
push 0x10
jmp 0x10002a84
cmp al, 0x20
je 0x10002a65
movzx eax, al
movsx eax, byte [eax + 0x1004b1d0]
test eax, eax
jne 0x10002bca
push 9
pop eax
cmp byte [esp + 0xf], al
mov eax, dword [esp + 0x14]
je 0x10002a69
xor ecx, ecx
mov dword [esp + 0x1c], ecx
jmp 0x10002a69
cmp al, 0x2c
mov eax, dword [esp + 0x14]
jne 0x10002a69
and dword [ebx], 0xe0ffffff
push 0xf
pop ecx
mov dword [esp + 0x1c], ecx
jmp 0x10002a69
lea edi, [ecx - 0x12]
cmp edi, 8
ja case.default.0x10002c3c
jmp dword [edi*4 + 0x10004830]
cmp ah, 0x6b
jne 0x10002c4f
push 0x13
jmp 0x10002a84
cmp ah, 0x63
jne 0x10002c5b
push 0x14
jmp 0x10002a84
cmp ah, 0x75
jne 0x10002c67
push 0x15
jmp 0x10002a84
cmp ah, 0x20
je 0x10002a65
movzx eax, ah
movsx eax, byte [eax + 0x1004b1d0]
test eax, eax
je 0x10002bf6
push 0x16
jmp 0x10002a84
mov eax, dword [ebx]
and eax, 0xff000000
add eax, 0x1000000
xor eax, dword [ebx]
and eax, 0x1f000000
xor eax, dword [ebx]
mov dword [ebx], eax
shr eax, 0x18
and eax, 0x1f
cmp eax, 0xa
ja 0x10002c82
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.keep_alive]
mov ebx, dword [esp + 0x2c]
jne 0x10002c82
cmp eax, 9
jne 0x10002a65
push 0x18
pop eax
mov ecx, eax
jmp 0x10002a61
mov eax, dword [ebx]
and eax, 0xff000000
add eax, 0x1000000
xor eax, dword [ebx]
and eax, 0x1f000000
xor eax, dword [ebx]
mov dword [ebx], eax
shr eax, 0x18
and eax, 0x1f
cmp eax, 5
ja 0x10002c82
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.close]
mov ebx, dword [esp + 0x2c]
jne 0x10002c82
cmp eax, 4
mov eax, dword [esp + 0x14]
jne 0x10002a69
push 0x19
jmp 0x10002d82
mov eax, dword [ebx]
and eax, 0xff000000
add eax, 0x1000000
xor eax, dword [ebx]
and eax, 0x1f000000
xor eax, dword [ebx]
mov dword [ebx], eax
shr eax, 0x18
and eax, 0x1f
cmp eax, 7
ja 0x10002c82
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.upgrade]
mov ebx, dword [esp + 0x2c]
jne 0x10002c82
cmp eax, 6
mov eax, dword [esp + 0x14]
jne 0x10002a69
push 0x1a
jmp 0x10002d82
cmp al, 0x2c
jne 0x10002a65
and dword [ebx], 0xe0ffffff
push 0x12
pop eax
mov ecx, eax
jmp 0x10002a61
cmp al, 0x20
mov eax, dword [esp + 0x14]
je 0x10002a69
push 0x11
pop ecx
jmp 0x10002c09
cmp al, 0x2c
jne 0x10002dac
push 0x18
pop eax
cmp ecx, eax
jne 0x10002d98
or dword [ebx], 8
jmp 0x10002d64
cmp ecx, 0x19
jne 0x10002da2
or dword [ebx], 0x10
jmp 0x10002d64
cmp ecx, 0x1a
jne 0x10002d64
or dword [ebx], 0x20
jmp 0x10002d64
cmp al, 0x20
mov eax, dword [esp + 0x14]
je 0x10002a69
push 0x16
jmp 0x10002d82
mov edi, dword [esp + 0x20]
mov eax, esi
sub eax, dword [esp + 0x44]
push 0x34
add edi, eax
mov dword [esp + 0x24], edi
pop edx
mov dword [esp + 0x10], edx
cmp edi, 0x14000
ja 0x10003da1
shl ecx, 0x11
xor ecx, dword [ebx]
and ecx, 0xfe0000
xor dword [ebx], ecx
cmp dword [esp + 0x24], 0
mov eax, dword [ebx]
mov cl, byte [esp + 0xf]
je 0x1000290f
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x10], 0
je 0x10002e51
mov edx, dword [esp + 0x24]
and eax, 0xfffed3ff
or eax, 0xd000
mov dword [ebx], eax
mov eax, esi
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0x10]
add esp, 0xc
test eax, eax
je 0x10002e3b
mov eax, dword [ebx + 0x14]
and eax, 0x84ffffff
mov dword [ebx + 4], edi
or eax, 0x4000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x10002ff3
and dword [esp + 0x24], 0
jmp 0x10003098
cmp cl, 0x20
je 0x10002e9b
push 9
pop eax
cmp cl, al
je 0x10002e9b
mov edx, dword [ebx]
mov eax, edx
shr eax, 0x11
and eax, 0x7f
sub eax, 0x17
je 0x10002e8e
dec eax
je 0x10002e89
dec eax
je 0x10002e84
dec eax
jne 0x10002e93
or edx, 0x20
jmp 0x10002e91
or edx, 0x10
jmp 0x10002e91
or edx, 8
jmp 0x10002e91
or edx, 4
mov dword [ebx], edx
push 0x2c
pop edx
jmp 0x10002957
mov edx, dword [ebx]
mov eax, edx
and eax, 0xfe0000
cmp eax, 0x160000
jne 0x10002eb9
and edx, 0xff19ffff
or edx, 0x180000
mov dword [ebx], edx
push 0x31
jmp 0x10002e95
cmp cl, 0x20
je 0x1000336f
push 9
pop eax
cmp cl, al
je 0x1000336f
mov eax, dword [ebx]
shr eax, 0x11
and eax, 0x7f
sub eax, 0xa
je 0x100045d8
sub eax, 0xd
je 0x10002eff
dec eax
je 0x10002efa
dec eax
je 0x10002ef5
dec eax
jne 0x10002f02
or dword [ebx], 0x20
jmp 0x10002f02
or dword [ebx], 0x10
jmp 0x10002f02
or dword [ebx], 8
jmp 0x10002f02
or dword [ebx], 4
mov eax, dword [esp + 0x24]
test eax, eax
push 0x2c
cmove eax, esi
mov dword [esp + 0x28], eax
pop edx
mov dword [esp + 0x10], edx
test eax, eax
je 0x1000290f
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
je 0x10002f78
mov eax, dword [ebx]
mov ecx, dword [esp + 0x24]
and eax, 0xfffeb3ff
or eax, 0xb000
mov dword [ebx], eax
mov eax, esi
sub eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebx
call dword [eax + 0x10]
add esp, 0xc
test eax, eax
je 0x10002f62
mov eax, dword [ebx + 0x14]
and eax, 0x84ffffff
mov dword [ebx + 4], edi
or eax, 0x4000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x10002ff3
mov cl, byte [esp + 0xf]
and dword [esp + 0x24], 0
jmp 0x1000290f
cmp cl, 0xa
jne 0x100041a8
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
shr eax, 2
test al, 0x10
je 0x10002ffd
mov eax, dword [esp + 0x18]
push 0x40
pop edx
mov dword [esp + 0x10], edx
cmp dword [eax + 0x24], 0
je 0x1000290f
mov eax, dword [esp + 0x1c]
and eax, 0xffff03ff
or eax, 0x10000
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
push ebx
call dword [eax + 0x24]
pop ecx
test eax, eax
je 0x10002fdd
mov eax, dword [ebx + 0x14]
and eax, 0x8affffff
mov dword [ebx + 4], edi
or eax, 0xa000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
je 0x10003098
sub esi, dword [ebp + 8]
mov eax, esi
jmp 0x1000413c
mov ecx, dword [esp + 0x1c]
test ecx, 0x20000000
je 0x10003020
test al, al
jns 0x10003020
cmp dword [esp + 0x3c], 0
je 0x100045ea
test al, 1
jne 0x100045ea
push 0x3a
pop edx
mov dword [esp + 0x10], edx
test al, 0x20
je 0x10003046
test al, 8
je 0x10003046
push 3
pop eax
test al, cl
je 0x10003041
cmp word [ebx + 0x14], 0x65
je 0x10003041
xor ecx, ecx
jmp 0x1000304f
xor ecx, ecx
inc ecx
jmp 0x1000304f
xor ecx, ecx
cmp byte [ebx + 0x16], 5
sete cl
mov eax, dword [ebx + 0x14]
and eax, 0x7fffffff
shl ecx, 0x1f
or ecx, eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x14], ecx
mov eax, dword [eax + 0x14]
test eax, eax
je 0x1000308e
push ebx
call eax
pop ecx
sub eax, 0
je 0x1000308a
dec eax
je 0x10003084
dec eax
jne 0x100045fc
or dword [ebx + 0x14], 0x80000000
or dword [ebx], 0x100
mov edx, dword [esp + 0x10]
test byte [ebx + 0x17], 0x7f
jne 0x1000460c
mov cl, byte [esp + 0xf]
jmp 0x1000290f
mov eax, dword [ebp + 8]
sub eax, esi
add eax, dword [ebp + 0xc]
cdq
mov dword [esp + 0x40], edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x40]
ja 0x100030d8
jb 0x100030cc
mov edx, dword [esp + 0x44]
cmp eax, edx
jae 0x100030dc
mov edi, dword [esp + 0x1c]
mov edx, eax
mov dword [esp + 0x40], edi
jmp 0x100030dc
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
test edi, edi
cmove edi, esi
sub eax, edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x40]
sbb dword [esp + 0x1c], edi
dec esi
mov edi, dword [esp + 0x20]
add esi, edx
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x40], esi
jne 0x10003f5e
cmp dword [esp + 0x28], 0
push 0x40
pop edx
mov dword [esp + 0x10], edx
je 0x1000290f
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x10003185
mov eax, dword [ebx]
mov ecx, dword [esp + 0x28]
and eax, 0xffff03ff
or eax, 0x10000
mov dword [ebx], eax
mov eax, esi
sub eax, ecx
inc eax
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebx
call dword [eax + 0x18]
add esp, 0xc
test eax, eax
je 0x1000316b
mov eax, dword [ebx + 0x14]
and eax, 0x86ffffff
mov dword [ebx + 4], edi
or eax, 0x6000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x10002ff3
mov cl, byte [esp + 0xf]
and dword [esp + 0x28], 0
jmp 0x1000290f
push 3
pop ecx
mov edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
cmp dword [ecx], 0
je 0x10003f62
and eax, 0xfffe0fff
or eax, 0xc00
push ebx
mov dword [ebx], eax
call dword [ecx]
pop ecx
test eax, eax
je 0x100031cc
mov eax, dword [ebx + 0x14]
and eax, 0x81ffffff
mov dword [ebx + 4], edi
or eax, 0x1000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
je 0x10003f62
sub esi, dword [ebp + 8]
lea eax, [esi + 1]
jmp 0x1000413c
imul cx, word [ebx + 0x14], 0xa
movsx eax, byte [esp + 0xf]
push 0x30
add cx, ax
pop eax
sub cx, ax
mov word [ebx + 0x14], cx
cmp cx, 0x3e7
jbe 0x10003f62
mov eax, dword [ebx + 0x14]
and eax, 0x8fffffff
or eax, 0xf000000
jmp 0x100046fe
cmp cl, 0x20
jne 0x1000320f
push 0xf
jmp 0x100033c7
cmp cl, 0x20
je 0x100045a3
movzx eax, cl
mov cl, byte [eax + 0x1004b1d0]
test cl, cl
je 0x100045a3
mov eax, dword [esp + 0x38]
test eax, eax
push 0x2d
cmove eax, esi
movsx ecx, cl
and dword [ebx], 0xe0ffffff
mov dword [esp + 0x3c], eax
mov eax, dword [ebx]
pop edx
mov dword [esp + 0x10], edx
sub ecx, 0x63
je 0x100032af
sub ecx, 0xd
je 0x100032a0
sub ecx, 4
je 0x10003291
dec ecx
je 0x10003282
and eax, 0xff01ffff
jmp 0x10003893
and eax, 0xff11ffff
or eax, 0x100000
jmp 0x10003893
and eax, 0xff0fffff
or eax, 0xe0000
jmp 0x10003893
and eax, 0xff0bffff
or eax, 0xa0000
jmp 0x10003893
and eax, 0xff03ffff
or eax, 0x20000
jmp 0x10003893
push 0x39
jmp 0x100033c7
mov eax, ecx
shl eax, 0x11
xor eax, dword [ebx]
and eax, 0xfe0000
xor dword [ebx], eax
cmp dword [esp + 0x24], 0
mov eax, dword [ebx]
push 0x34
pop edx
mov dword [esp + 0x10], edx
je 0x1000334c
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x10], 0
je 0x10003341
mov ecx, dword [esp + 0x24]
and eax, 0xfffed3ff
or eax, 0xd000
mov dword [ebx], eax
mov eax, esi
sub eax, ecx
push eax
push ecx
push ebx
call dword [edi + 0x10]
mov edi, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
je 0x10003325
mov eax, dword [ebx + 0x14]
and eax, 0x84ffffff
mov dword [ebx + 4], edi
or eax, 0x4000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
mov ecx, dword [esp + 0x1c]
jmp 0x10003345
mov edi, dword [esp + 0x20]
and dword [esp + 0x24], 0
jmp 0x10003350
mov edi, dword [esp + 0x20]
shl ecx, 0x11
xor ecx, dword [ebx]
and ecx, 0xfe0000
xor dword [ebx], ecx
cmp esi, dword [esp + 0x14]
jne 0x10003364
dec esi
mov eax, esi
sub eax, dword [esp + 0x44]
jmp 0x10003d8f
push 0x2e
jmp 0x100033c7
cmp cl, 0xd
je 0x10003f62
cmp cl, 0xa
je 0x10003f62
mov eax, dword [ebx + 0x14]
and eax, 0x8dffffff
or eax, 0xd000000
jmp 0x100046fe
cmp cl, 0x54
jne 0x100033a8
mov eax, dword [ebx]
and eax, 0xfffffffd
or eax, 1
push 6
jmp 0x100033c5
cmp cl, 0x45
jne 0x10004624
push 2
pop eax
mov byte [ebx + 0x16], al
mov eax, dword [ebx]
and eax, 0xe2fffffc
or eax, 0x2000000
push 0x13
mov dword [ebx], eax
pop edx
mov dword [esp + 0x10], edx
jmp 0x10003f62
cmp cl, 0xd
je 0x10003f62
cmp cl, 0xa
je 0x10003f62
and dword [ebx], 0x9ffffc03
or dword [ebx + 8], 0xffffffff
or dword [ebx + 0xc], 0xffffffff
mov eax, dword [ebx]
cmp cl, 0x48
jne 0x10004624
mov ecx, dword [esp + 0x18]
push 5
pop edx
mov dword [esp + 0x10], edx
cmp dword [ecx], 0
je 0x10003f62
and eax, 0xfffe17ff
or eax, 0x1400
jmp 0x100031af
cmp cl, 0x54
jne 0x100041a8
push 6
jmp 0x100033c7
cmp cl, 0x54
jne 0x100041a8
push 7
jmp 0x100033c7
cmp cl, 0x50
jne 0x100041a8
push 8
jmp 0x100033c7
cmp cl, 0x2f
jne 0x100041a8
push 9
pop eax
mov edx, eax
jmp 0x100033c8
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10003aa0
movsx ax, cl
push 0x30
pop ecx
sub ax, cx
mov word [ebx + 0x10], ax
push 0xa
jmp 0x100033c7
cmp cl, 0x2e
jne 0x10003aa0
push 0xb
jmp 0x100033c7
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10003aa0
movsx ax, cl
push 0x30
pop ecx
sub ax, cx
mov word [ebx + 0x12], ax
push 0xc
jmp 0x100033c7
cmp cl, 0x20
jne 0x10003aa0
push 0xd
jmp 0x100033c7
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x100034d6
push 0x30
movsx eax, cl
pop ecx
sub eax, ecx
mov word [ebx + 0x14], ax
push 0xe
jmp 0x100033c7
cmp cl, 0x20
jne 0x1000320f
jmp 0x10003f62
cmp cl, 0xd
jne 0x1000355b
cmp dword [esp + 0x34], 0
push 0x11
pop edx
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], 0
je 0x10003551
mov eax, dword [ebx]
and eax, 0xfffe47ff
or eax, 0x4400
mov edx, dword [esp + 0x34]
mov dword [ebx], eax
mov eax, esi
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 8]
add esp, 0xc
test eax, eax
je 0x1000353b
mov eax, dword [ebx + 0x14]
and eax, 0x88ffffff
mov dword [ebx + 4], edi
or eax, 0x8000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
and dword [esp + 0x34], 0
jmp 0x10003f62
cmp cl, 0xa
jne 0x10003f62
cmp dword [esp + 0x34], 0
push 0x2c
pop edx
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], 0
je 0x10003551
mov eax, dword [ebx]
and eax, 0xfffeb3ff
or eax, 0xb000
jmp 0x10003511
cmp cl, 0xa
jne 0x100041a8
push 0x2c
jmp 0x100033c7
cmp cl, 0xd
je 0x10003f62
cmp cl, 0xa
je 0x10003f62
and dword [ebx], 0x9ffffc03
mov eax, dword [ebx]
or dword [ebx + 8], 0xffffffff
mov al, cl
or dword [ebx + 0xc], 0xffffffff
or al, 0x20
cmp al, 0x61
jb 0x10004636
cmp al, 0x7a
ja 0x10004636
mov eax, dword [ebx]
and eax, 0xe1ffffff
mov byte [ebx + 0x16], 0
or eax, 0x1000000
mov dword [esp + 0x40], eax
mov dword [ebx], eax
movsx eax, cl
cmp eax, 0x4d
jg 0x10003645
je 0x1000363f
sub eax, 0x41
je 0x10003639
dec eax
je 0x10003633
dec eax
je 0x1000362d
dec eax
je 0x10003627
push 3
pop ecx
sub eax, ecx
je 0x10003621
dec eax
je 0x10003619
sub eax, 4
jne 0x10004636
push 9
jmp 0x1000361b
push 2
pop eax
mov byte [ebx + 0x16], al
jmp 0x1000368a
mov byte [ebx + 0x16], 1
jmp 0x1000368a
mov byte [ebx + 0x16], 0
jmp 0x1000368a
mov byte [ebx + 0x16], 5
jmp 0x1000368a
mov byte [ebx + 0x16], 0x10
jmp 0x1000368a
mov byte [ebx + 0x16], 0x13
jmp 0x1000368a
mov byte [ebx + 0x16], 0xa
jmp 0x1000368a
sub eax, 0x4e
je 0x10003686
dec eax
je 0x10003680
dec eax
je 0x1000367c
push 2
pop ecx
sub eax, ecx
je 0x10003676
dec eax
je 0x10003670
dec eax
je 0x1000366a
dec eax
jne 0x10004636
mov byte [ebx + 0x16], 0xf
jmp 0x1000368a
mov byte [ebx + 0x16], 7
jmp 0x1000368a
mov byte [ebx + 0x16], 0x1a
jmp 0x1000368a
mov byte [ebx + 0x16], 0x14
jmp 0x1000368a
push 3
jmp 0x1000361b
mov byte [ebx + 0x16], 6
jmp 0x1000368a
mov byte [ebx + 0x16], 0x19
mov ecx, dword [esp + 0x18]
push 0x13
pop edx
mov dword [esp + 0x10], edx
cmp dword [ecx], 0
je 0x10003f62
mov eax, dword [esp + 0x40]
and eax, 0xfffe4fff
or eax, 0x4c00
jmp 0x100031af
test cl, cl
je 0x10004636
movzx eax, byte [ebx + 0x16]
mov dword [esp + 0x40], eax
cmp cl, 0x20
jne 0x100036f3
mov eax, dword [ebx]
mov ebx, dword [esp + 0x40]
shr eax, 0x18
and eax, 0x1f
mov edi, dword [ebx*4 + 0x1004b2d0]
mov ebx, dword [esp + 0x2c]
cmp byte [eax + edi], 0
mov edi, dword [esp + 0x20]
jne 0x100036f3
push 0x14
pop edx
mov dword [esp + 0x10], edx
jmp 0x1000387c
mov eax, dword [ebx]
mov ebx, dword [esp + 0x40]
shr eax, 0x18
and eax, 0x1f
mov edi, dword [ebx*4 + 0x1004b2d0]
mov ebx, dword [esp + 0x2c]
cmp cl, byte [eax + edi]
mov edi, dword [esp + 0x20]
je 0x1000387c
cmp cl, 0x41
jl 0x10003721
cmp cl, 0x5a
jle 0x1000372a
cmp cl, 0x2d
jne 0x10004636
movzx ecx, word [ebx + 2]
mov eax, dword [esp + 0x40]
and ecx, 0x1f00
shl eax, 0x10
or ecx, eax
movsx eax, byte [esp + 0xf]
or ecx, eax
mov eax, 0xa014f
cmp ecx, eax
ja 0x100037f6
je 0x100037ed
mov eax, 0x50148
cmp ecx, eax
ja 0x100037af
je 0x100037a6
sub ecx, 0x30141
je 0x1000379d
sub ecx, 0x11
je 0x10003794
push 3
pop eax
sub ecx, eax
je 0x1000378b
sub ecx, 0x100fd
jne 0x10004636
mov byte [ebx + 0x16], 0x1d
jmp 0x1000387c
mov byte [ebx + 0x16], 4
jmp 0x1000387c
mov byte [ebx + 0x16], 0xc
jmp 0x1000387c
mov byte [ebx + 0x16], 0x1c
jmp 0x1000387c
mov byte [ebx + 0x16], 0x16
jmp 0x1000387c
sub ecx, 0x50250
je 0x100037e4
sub ecx, 0x3fef9
je 0x100037db
push 0x18
pop eax
sub ecx, 0xffe4
je 0x10003828
sub ecx, eax
jne 0x10004636
mov byte [ebx + 0x16], 0x17
jmp 0x1000387c
mov byte [ebx + 0x16], 0x1f
jmp 0x1000387c
mov byte [ebx + 0x16], 8
jmp 0x1000387c
mov byte [ebx + 0x16], 0xb
jmp 0x1000387c
mov eax, 0xf0253
cmp ecx, eax
ja 0x10003845
je 0x1000383f
cmp ecx, 0xa0241
je 0x10003839
cmp ecx, 0xa0341
je 0x10003833
cmp ecx, 0xc0450
je 0x1000382d
cmp ecx, 0xf0242
jne 0x10004636
push 0x12
pop eax
mov byte [ebx + 0x16], al
jmp 0x1000387c
mov byte [ebx + 0x16], 0xd
jmp 0x1000387c
mov byte [ebx + 0x16], 0x1e
jmp 0x1000387c
mov byte [ebx + 0x16], 0x15
jmp 0x1000387c
mov byte [ebx + 0x16], 0x1b
jmp 0x1000387c
sub ecx, 0xf0349
je 0x10003878
sub ecx, 0x4fef9
je 0x10003872
sub ecx, 0x5ff03
je 0x1000386c
sub ecx, 0xa
jne 0x10004636
mov byte [ebx + 0x16], 0x21
jmp 0x1000387c
mov byte [ebx + 0x16], 0xe
jmp 0x1000387c
mov byte [ebx + 0x16], 0x11
jmp 0x1000387c
mov byte [ebx + 0x16], 0x20
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xff000000
add eax, 0x1000000
xor eax, ecx
and eax, 0x1f000000
xor eax, ecx
mov dword [ebx], eax
jmp 0x10003f62
cmp cl, 0x20
je 0x10003f62
mov eax, dword [esp + 0x30]
test eax, eax
push 0x18
cmove eax, esi
cmp byte [ebx + 0x16], 5
mov dword [esp + 0x34], eax
pop eax
cmove edx, eax
mov dword [esp + 0x10], edx
mov dl, cl
mov ecx, dword [esp + 0x10]
call fcn.100025b0
mov edx, eax
mov dword [esp + 0x10], edx
cmp edx, 1
jne 0x10003f62
mov eax, dword [ebx + 0x14]
and eax, 0x91ffffff
or eax, 0x11000000
jmp 0x100046fe
cmp cl, 0xa
je 0x100038d8
cmp cl, 0xd
je 0x100038d8
cmp cl, 0x20
je 0x100038d8
jmp 0x100038be
cmp cl, 0xa
je 0x1000393a
cmp cl, 0xd
je 0x1000393a
cmp cl, 0x20
jne 0x100038be
cmp dword [esp + 0x30], 0
push 0x20
pop edx
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 4], 0
je 0x100039b6
mov eax, dword [ebx]
and eax, 0xfffe83ff
or eax, 0x8000
mov dword [ebx], eax
jmp 0x10003978
xor eax, eax
xor edx, edx
cmp cl, 0xd
mov word [ebx + 0x10], ax
push 9
setne dl
add edx, 0x2b
cmp dword [esp + 0x34], 0
pop eax
mov word [ebx + 0x12], ax
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 4], 0
je 0x100039b6
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x30]
mov eax, esi
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 4]
add esp, 0xc
test eax, eax
je 0x100039a0
mov eax, dword [ebx + 0x14]
and eax, 0x82ffffff
mov dword [ebx + 4], edi
or eax, 0x2000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
and dword [esp + 0x30], 0
jmp 0x10003f62
movsx eax, cl
sub eax, 0x20
je 0x10003f62
sub eax, 0x28
je 0x100039e9
dec eax
jne 0x10004624
cmp byte [ebx + 0x16], 0x21
jne 0x10004624
push 0x25
jmp 0x100033c7
push 0x21
jmp 0x100033c7
cmp cl, 0x54
jne 0x100041a8
push 0x22
jmp 0x100033c7
cmp cl, 0x54
jne 0x100041a8
push 0x23
jmp 0x100033c7
cmp cl, 0x50
jne 0x100041a8
push 0x24
jmp 0x100033c7
cmp cl, 0x43
jne 0x100041a8
push 0x26
jmp 0x100033c7
cmp cl, 0x45
jmp 0x10003a13
cmp cl, 0x2f
jne 0x100041a8
push 0x27
jmp 0x100033c7
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10003aa0
movsx ax, cl
push 0x30
pop ecx
sub ax, cx
mov word [ebx + 0x10], ax
push 0x28
jmp 0x100033c7
cmp cl, 0x2e
jne 0x10003aa0
push 0x29
jmp 0x100033c7
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10003aa0
movsx ax, cl
push 0x30
pop ecx
sub ax, cx
mov word [ebx + 0x12], ax
push 0x2a
jmp 0x100033c7
cmp cl, 0xd
jne 0x10003a97
push 0x2b
jmp 0x100033c7
cmp cl, 0xa
je 0x10003597
mov eax, dword [ebx + 0x14]
and eax, 0x8effffff
or eax, 0xe000000
jmp 0x100046fe
cmp cl, 0xa
je 0x10003597
mov eax, dword [ebx + 0x14]
and eax, 0x97ffffff
or eax, 0x17000000
jmp 0x100046fe
mov dword [esp + 0x40], esi
jmp 0x10003d7c
mov cl, byte [esi]
cmp cl, 0x20
je 0x10003db7
movzx eax, cl
mov al, byte [eax + 0x1004b1d0]
mov byte [esp + 0xf], al
test al, al
je 0x10003db3
mov eax, dword [ebx]
mov ecx, eax
shr ecx, 0x11
and ecx, 0x7f
mov dword [esp + 0x44], eax
cmp ecx, 0xe
ja case.0x10003b0d.11
jmp dword [ecx*4 + 0x10004854]
mov eax, dword [ebp + 8]
mov ecx, 0x14000
sub eax, esi
add eax, dword [ebp + 0xc]
cmp eax, ecx
cmovb ecx, eax
add ecx, esi
mov dword [esp + 0x44], ecx
lea ecx, [esi + 1]
jmp 0x10003b4f
mov al, byte [ecx]
cmp al, 0x20
je case.0x10003b0d.11
movzx eax, al
movsx eax, byte [eax + 0x1004b1d0]
test eax, eax
je case.0x10003b0d.11
inc esi
inc ecx
cmp ecx, dword [esp + 0x44]
jb 0x10003b31
jmp case.0x10003b0d.11
xor ecx, ecx
cmp byte [esp + 0xf], 0x6f
push 2
pop ebx
cmove ecx, ebx
mov ebx, dword [esp + 0x2c]
and eax, 0xff000000
and ecx, 0x7f
add eax, 0x1000000
shl ecx, 0x11
and eax, 0x1f000000
or ecx, eax
mov eax, dword [esp + 0x44]
and eax, 0xe001ffff
or ecx, eax
mov dword [ebx], ecx
jmp case.0x10003b0d.11
xor ecx, ecx
cmp byte [esp + 0xf], 0x6e
push 3
jmp 0x10003b63
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov al, byte [esp + 0xf]
mov dword [ebx], ecx
cmp al, 0x6e
je 0x10003bd3
cmp al, 0x74
jne 0x10003c32
and ecx, 0xff0dffff
or ecx, 0xc0000
jmp 0x10003b8d
and ecx, 0xff09ffff
or ecx, 0x80000
jmp 0x10003b8d
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov eax, ecx
mov dword [ebx], ecx
shr eax, 0x18
and eax, 0x1f
cmp eax, 0xa
ja 0x10003c32
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.connection]
mov ebx, dword [esp + 0x2c]
jne 0x10003c32
cmp eax, 9
jne case.0x10003b0d.11
and ecx, 0xff13ffff
or ecx, 0x120000
jmp 0x10003b8d
and ecx, 0xff01ffff
jmp 0x10003b8d
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov eax, ecx
mov dword [ebx], ecx
shr eax, 0x18
and eax, 0x1f
cmp eax, 0x10
ja 0x10003c32
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.proxy_connection]
mov ebx, dword [esp + 0x2c]
jne 0x10003c32
cmp eax, 0xf
jmp 0x10003c1b
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov eax, ecx
mov dword [ebx], ecx
shr eax, 0x18
and eax, 0x1f
cmp eax, 0xe
ja 0x10003c32
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.content_length]
mov ebx, dword [esp + 0x2c]
jne 0x10003c32
cmp eax, 0xd
jne case.0x10003b0d.11
and ecx, 0xff15ffff
or ecx, 0x140000
jmp 0x10003b8d
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov eax, ecx
mov dword [ebx], ecx
shr eax, 0x18
and eax, 0x1f
cmp eax, 0x11
ja 0x10003c32
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.transfer_encoding]
mov ebx, dword [esp + 0x2c]
jne 0x10003c32
cmp eax, 0x10
jne case.0x10003b0d.11
and ecx, 0xff1bffff
or ecx, 0x201a0000
jmp 0x10003b8d
mov ecx, eax
and ecx, 0xff000000
add ecx, 0x1000000
xor ecx, eax
and ecx, 0x1f000000
xor ecx, eax
mov eax, ecx
mov dword [ebx], ecx
shr eax, 0x18
and eax, 0x1f
cmp eax, 7
ja 0x10003c32
mov bl, byte [esp + 0xf]
cmp bl, byte [eax + str.upgrade]
mov ebx, dword [esp + 0x2c]
jne 0x10003c32
cmp eax, 6
jne case.0x10003b0d.11
and ecx, 0xff1dffff
or ecx, 0x1c0000
jmp 0x10003b8d
and eax, 0xff01ffff
mov dword [ebx], eax
inc esi
mov eax, dword [esp + 0x14]
cmp esi, eax
jne 0x10003ad6
dec esi
mov eax, esi
sub eax, dword [esp + 0x40]
add edi, eax
mov dword [esp + 0x20], edi
cmp edi, 0x14000
jbe 0x10003f62
mov eax, dword [ebx + 0x14]
and eax, 0x8cffffff
or eax, 0xc000000
jmp 0x100046fe
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x10003d88
mov eax, esi
sub eax, dword [esp + 0x40]
add edi, eax
mov dword [esp + 0x20], edi
cmp edi, 0x14000
ja 0x10003da1
cmp cl, 0x3a
jne 0x100045a3
cmp dword [esp + 0x38], 0
push 0x2e
pop edx
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0xc], 0
je 0x10003e40
mov eax, dword [ebx]
mov edx, dword [esp + 0x38]
and eax, 0xfffebbff
or eax, 0xb800
mov dword [ebx], eax
mov eax, esi
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0xc]
add esp, 0xc
test eax, eax
je 0x10003e2a
mov eax, dword [ebx + 0x14]
and eax, 0x83ffffff
mov dword [ebx + 4], edi
or eax, 0x3000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
and dword [esp + 0x38], 0
jmp 0x10003f62
cmp cl, 0x20
je 0x10003f62
push 9
pop eax
cmp cl, al
je 0x10003f62
cmp cl, 0xd
jne 0x10003e6a
push 0x2f
jmp 0x100033c7
cmp cl, 0xa
jne case.0x1000291b.49
push 0x30
jmp 0x10003451
mov eax, dword [esp + 0x24]
test eax, eax
push 0x32
cmove eax, esi
and dword [ebx], 0xe0ffffff
mov ecx, dword [ebx]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x20], ecx
mov ah, al
shr dword [esp + 0x20], 0x11
or ah, 0x20
and dword [esp + 0x20], 0x7f
sub dword [esp + 0x20], 9
pop edx
mov dword [esp + 0x10], edx
mov byte [esp + 0xf], ah
je 0x10004143
dec dword [esp + 0x1c]
je 0x10003f25
mov eax, dword [esp + 0x1c]
dec eax
dec eax
je 0x10003f62
dec eax
je 0x10003efc
dec eax
je 0x10003eeb
dec eax
je 0x10003f62
sub eax, 3
je 0x10003f62
and ecx, 0xff01ffff
jmp 0x10004188
and ecx, 0xff01ffff
or ecx, 0x80
jmp 0x10004188
cmp byte [esp + 0xf], 0x63
jne 0x10003f14
and ecx, 0xff21ffff
or ecx, 0x200000
jmp 0x10004188
and ecx, 0xff23ffff
or ecx, 0x220000
jmp 0x10004188
cmp al, 0x30
jl 0x100045d8
cmp al, 0x39
jg 0x100045d8
test ecx, 0x200
jne 0x100045ea
push 0x30
movsx eax, al
and ecx, 0xff17ffff
pop edx
sub eax, edx
or ecx, 0x160200
cdq
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov dword [ebx], ecx
mov edx, dword [esp + 0x10]
inc esi
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x40], esi
jne 0x100028f3
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x18]
je 0x10003fcd
cmp dword [ecx + 0xc], 0
je 0x10003fcd
shl edx, 0xa
mov eax, esi
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x38]
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0xc]
add esp, 0xc
test eax, eax
je 0x10003fb7
mov eax, dword [ebx + 0x14]
and eax, 0x83ffffff
mov dword [ebx + 4], edi
or eax, 0x3000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x10002ff3
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x24], 0
je 0x10004021
cmp dword [ecx + 0x10], 0
je 0x10004021
shl edx, 0xa
mov eax, esi
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x24]
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0x10]
add esp, 0xc
test eax, eax
je 0x1000400f
mov eax, dword [ebx + 0x14]
and eax, 0x84ffffff
mov dword [ebx + 4], edi
or eax, 0x4000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x10002ff3
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x18]
je 0x1000407d
cmp dword [ecx + 4], 0
je 0x1000407d
shl edx, 0xa
mov eax, esi
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x30]
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 4]
add esp, 0xc
test eax, eax
je 0x10004067
mov eax, dword [ebx + 0x14]
and eax, 0x82ffffff
mov dword [ebx + 4], edi
or eax, 0x2000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x10002ff3
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x28], 0
je 0x100040d1
cmp dword [ecx + 0x18], 0
je 0x100040d1
shl edx, 0xa
mov eax, esi
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x28]
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0x18]
add esp, 0xc
test eax, eax
je 0x100040bf
mov eax, dword [ebx + 0x14]
and eax, 0x86ffffff
mov dword [ebx + 4], edi
or eax, 0x6000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x10002ff3
cmp dword [esp + 0x34], 0
je 0x10004129
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], 0
je 0x10004129
shl edx, 0xa
mov eax, esi
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov edx, dword [esp + 0x34]
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 8]
add esp, 0xc
test eax, eax
je 0x10004117
mov eax, dword [ebx + 0x14]
and eax, 0x88ffffff
mov dword [ebx + 4], edi
or eax, 0x8000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x10002ff3
mov eax, dword [ebp + 0xc]
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ah, 0x6b
jne 0x10004156
and ecx, 0xff27ffff
or ecx, 0x260000
jmp 0x10004188
cmp ah, 0x63
jne 0x10004169
and ecx, 0xff29ffff
or ecx, 0x280000
jmp 0x10004188
cmp ah, 0x75
jne 0x1000417c
and ecx, 0xff2bffff
or ecx, 0x2a0000
jmp 0x10004188
and ecx, 0xff2dffff
or ecx, 0x2c0000
mov dword [ebx], ecx
jmp 0x10003f62
cmp cl, 0xa
jne 0x10003abb
push 0x33
jmp 0x100033c7
cmp cl, 0xa
je 0x10003e6f
mov eax, dword [ebx + 0x14]
and eax, 0x9effffff
or eax, 0x1e000000
jmp 0x100046fe
cmp cl, 0xa
jne 0x100041a8
mov ecx, dword [ebx]
xor edi, edi
and dword [ebx + 4], 0
shr ecx, 2
mov eax, ecx
mov dword [esp + 0x20], edi
and eax, 1
mov dword [esp + 0x44], eax
jne 0x100041f1
mov eax, dword [ebx + 8]
cmp dword [ebx + 0xc], edi
ja 0x100041e5
test eax, eax
je 0x100041ed
and eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x100041f1
xor eax, eax
jmp 0x100041f4
xor eax, eax
inc eax
test dword [ebx + 0x14], 0x80000000
je 0x10004218
cmp byte [ebx + 0x16], 5
je 0x10004648
test cl, 0x40
jne 0x10004648
test eax, eax
je 0x10004648
test cl, 0x40
jne 0x1000426e
cmp dword [esp + 0x44], edi
je 0x1000422a
push 0x35
jmp 0x100033c7
test dword [ebx], 0x20000000
je 0x1000424a
push 3
pop eax
test byte [ebx], al
jne 0x10004243
cmp dword [esp + 0x3c], edi
je 0x100046bd
push 0x3f
jmp 0x100033c7
mov ecx, dword [ebx + 8]
mov eax, ecx
or eax, dword [ebx + 0xc]
je 0x1000426e
and ecx, dword [ebx + 0xc]
cmp ecx, 0xffffffff
je 0x10004263
push 0x3e
jmp 0x100033c7
mov ecx, ebx
call fcn.10004890
test eax, eax
jne 0x10004243
mov ecx, ebx
call fcn.100048f1
test eax, eax
je 0x10004289
push 3
pop eax
test byte [ebx], al
push 4
pop edx
push 0x12
pop eax
cmove edx, eax
jmp 0x1000428c
xor edx, edx
inc edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
cmp dword [ecx + 0x1c], edi
je 0x10003f62
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
push ebx
call dword [ecx + 0x1c]
pop ecx
test eax, eax
je 0x100031cc
mov eax, dword [ebx + 0x14]
and dword [ebx + 4], edi
and eax, 0x87ffffff
or eax, 0x7000000
jmp 0x100031c9
mov eax, dword [esp + 0x28]
test eax, eax
cmove eax, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
dec esi
jmp 0x10003f62
mov ecx, ebx
call fcn.100048f1
test eax, eax
je 0x100042fe
push 3
pop eax
test byte [ebx], al
push 4
pop edx
push 0x12
pop eax
cmove edx, eax
jmp 0x10004301
xor edx, edx
inc edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
cmp dword [ecx + 0x1c], 0
je 0x1000434e
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
push ebx
call dword [ecx + 0x1c]
pop ecx
test eax, eax
je 0x10004338
mov eax, dword [ebx + 0x14]
and eax, 0x87ffffff
mov dword [ebx + 4], edi
or eax, 0x7000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
test dword [ebx + 0x14], 0x80000000
je 0x10003f62
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
sub esi, dword [ebp + 8]
lea eax, [esi + 1]
jmp 0x10004139
movzx eax, cl
mov al, byte [eax + 0x1004b3d0]
cmp al, 0xff
je 0x100046e2
movsx eax, al
cdq
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
push 0x36
jmp 0x100033c7
cmp cl, 0xd
jne 0x100043a1
push 0x38
jmp 0x100033c7
movzx eax, cl
mov al, byte [eax + 0x1004b3d0]
mov byte [esp + 0xf], al
cmp al, 0xff
jne 0x100043c7
cmp cl, 0x3b
je 0x100043c0
cmp cl, 0x20
jne 0x100046e2
push 0x37
jmp 0x100033c7
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp eax, 0xfffffff
ja 0x100045d8
jb 0x100043e3
cmp ecx, 0xfffffffe
ja 0x100045d8
shld eax, ecx, 4
mov dword [esp + 0x44], eax
movsx eax, byte [esp + 0xf]
cdq
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 8], ecx
adc eax, edx
mov dword [ebx + 0xc], eax
jmp 0x10003f5e
cmp cl, 0xd
jne 0x10003f62
jmp 0x1000439a
cmp cl, 0xa
jne 0x100041a8
mov eax, dword [ebx + 8]
xor edi, edi
and dword [ebx + 4], 0
or eax, dword [ebx + 0xc]
mov dword [esp + 0x20], edi
jne 0x10004434
or dword [ebx], 0x40
push 0x2c
jmp 0x10004436
push 0x3b
mov ecx, dword [esp + 0x1c]
pop edx
mov dword [esp + 0x10], edx
cmp dword [ecx + 0x20], edi
je 0x10003f62
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
push ebx
call dword [ecx + 0x20]
pop ecx
test eax, eax
je 0x100031cc
mov eax, dword [ebx + 0x14]
and dword [ebx + 4], edi
and eax, 0x89ffffff
or eax, 0x9000000
jmp 0x100031c9
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 8]
sub eax, esi
add eax, dword [ebp + 0xc]
cdq
mov dword [esp + 0x40], edx
mov edx, dword [ebx + 0xc]
cmp edx, dword [esp + 0x40]
ja 0x1000449c
jb 0x10004496
cmp ecx, eax
jae 0x1000449c
mov eax, ecx
mov dword [esp + 0x40], edx
mov edi, dword [esp + 0x28]
test edi, edi
cmove edi, esi
sub ecx, eax
mov dword [esp + 0x28], edi
sbb edx, dword [esp + 0x40]
dec eax
mov edi, dword [esp + 0x20]
add esi, eax
mov eax, ecx
mov dword [ebx + 8], ecx
or eax, edx
mov dword [ebx + 0xc], edx
jne 0x10003f5e
push 0x3c
jmp 0x100033c7
cmp cl, 0xd
jne 0x100041a8
cmp dword [esp + 0x28], 0
push 0x3d
pop edx
mov dword [esp + 0x10], edx
je 0x10003f62
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x18], 0
je 0x1000453e
mov eax, dword [ebx]
mov edx, dword [esp + 0x28]
and eax, 0xfffef7ff
or eax, 0xf400
mov dword [ebx], eax
mov eax, esi
sub eax, edx
push eax
push edx
push ebx
call dword [ecx + 0x18]
add esp, 0xc
test eax, eax
je 0x10004528
mov eax, dword [ebx + 0x14]
and eax, 0x86ffffff
mov dword [ebx + 4], edi
or eax, 0x6000000
mov dword [ebx + 0x14], eax
mov edx, dword [ebx]
shr edx, 0xa
and edx, 0x7f
test byte [ebx + 0x17], 0x7f
mov dword [esp + 0x10], edx
jne 0x100031e2
and dword [esp + 0x28], 0
jmp 0x10003f62
cmp cl, 0xa
jne 0x100041a8
mov ecx, dword [esp + 0x18]
xor edi, edi
and dword [ebx + 4], 0
push 0x35
pop edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edx
cmp dword [ecx + 0x24], edi
je 0x10003f62
mov eax, dword [ebx]
and eax, 0xfffed7ff
or eax, 0xd400
push ebx
mov dword [ebx], eax
call dword [ecx + 0x24]
pop ecx
test eax, eax
je 0x100031cc
mov eax, dword [ebx + 0x14]
and dword [ebx + 4], edi
and eax, 0x8affffff
or eax, 0xa000000
jmp 0x100031c9
mov edi, dword [esp + 0x20]
mov eax, dword [ebx + 0x14]
and eax, 0x98ffffff
or eax, 0x18000000
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
mov edi, dword [esp + 0x20]
and eax, 0x99ffffff
shl ecx, 0x11
or eax, 0x19000000
xor ecx, dword [ebx]
and ecx, 0xfe0000
xor dword [ebx], ecx
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
and eax, 0x99ffffff
or eax, 0x19000000
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
and eax, 0x9affffff
or eax, 0x1a000000
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
and eax, 0x85ffffff
or eax, 0x5000000
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
and eax, 0xfffeebff
or eax, 0xe800
mov dword [ebx], eax
sub esi, dword [ebp + 8]
mov eax, esi
jmp 0x10004139
mov eax, dword [ebx + 0x14]
and eax, 0x9cffffff
or eax, 0x1c000000
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
and eax, 0x90ffffff
or eax, 0x10000000
jmp 0x100046fe
mov ecx, ebx
call fcn.100048f1
test eax, eax
je 0x10004663
push 3
pop eax
test byte [ebx], al
push 4
pop eax
push 0x12
pop ecx
cmove eax, ecx
jmp 0x10004666
xor eax, eax
inc eax
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x1c], edi
je 0x100046a9
shl eax, 0xa
xor eax, dword [ebx]
and eax, 0x1fc00
xor dword [ebx], eax
push ebx
call dword [ecx + 0x1c]
pop ecx
test eax, eax
je 0x10004697
mov eax, dword [ebx + 0x14]
and dword [ebx + 4], edi
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
shr eax, 0xa
and eax, 0x7f
test byte [ebx + 0x17], 0x7f
jne 0x100031e2
and dword [ebx + 4], edi
shl eax, 0xa
xor eax, dword [ebx]
and eax, 0x1fc00
xor dword [ebx], eax
jmp 0x100031e2
mov eax, dword [ebx + 0x14]
and dword [ebx + 4], edi
and eax, 0xa1ffffff
shl edx, 0xa
or eax, 0x21000000
xor edx, dword [ebx]
and edx, 0x1fc00
mov dword [ebx + 0x14], eax
xor dword [ebx], edx
jmp 0x10002ff3
mov eax, dword [ebx + 0x14]
and eax, 0x9bffffff
or eax, 0x1b000000
jmp 0x100046fe
mov eax, dword [ebx + 0x14]
and eax, 0x9dffffff
or eax, 0x1d000000
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 4], edi
test eax, 0x7f000000
jne 0x1000471e
and eax, 0xa0ffffff
mov dword [ebx + 4], edi
or eax, 0x20000000
mov dword [ebx + 0x14], eax
shl edx, 0xa
xor edx, dword [ebx]
and edx, 0x1fc00
xor dword [ebx], edx
jmp 0x1000461a