Function at 0x4824c9
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x98
mov ecx, dword [esp + 0xa0]
push ebx
push ebp
mov ebp, dword [esp + 0xb0]
xor ebx, ebx
push esi
xor esi, esi
inc ebx
mov eax, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [ebp]
mov edx, dword [ebp + 0x7c]
push edi
mov edi, esi
mov dword [esp + 0x8c], esi
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], eax
mov eax, ecx
shr eax, 0x13
and eax, ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], eax
mov ebx, ecx
xor eax, eax
shr ebx, 2
inc eax
mov dword [esp + 0x70], esi
and ebx, eax
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x88], esi
mov esi, eax
and esi, 8
mov dword [esp + 0x6c], ebx
mov ebx, dword [ebp + 0x20]
and eax, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], eax
test esi, esi
je 0x48258c
mov dword [edx], 0x80090000
jmp 0x482596
test eax, eax
je 0x4825a7
mov dword [edx], 0x80180005
push 4
pop eax
add edx, eax
mov dword [edx], 0x801a0000
add edx, eax
mov dword [esp + 0x10], edx
test ecx, 0x2000000
je 0x48271f
mov esi, dword [esp + 0xac]
cmp esi, ebx
jae 0x485063
cmp edx, dword [esp + 0x7c]
jae 0x4850b4
cmp dword [esp + 0x3c], 0
mov edx, esi
movzx ebx, byte [esi]
lea esi, [edx + 1]
mov eax, esi
mov edi, esi
je 0x4826d3
cmp ebx, 0xc0
jb 0x4826d3
test bl, 0x20
jne 0x482608
movzx eax, byte [esi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
inc esi
jmp 0x4826cf
movzx ecx, byte [esi]
test bl, 0x10
jne 0x48262f
movzx eax, byte [esi + 1]
and ebx, 0xf
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 2
jmp 0x4826cf
test bl, 8
jne 0x48265c
movzx eax, byte [esi + 1]
and ebx, 7
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x4826cf
push 4
pop eax
push 0x3f
pop edi
and ecx, edi
test al, bl
jne 0x482696
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edi
or ebx, eax
add esi, 4
jmp 0x4826cf
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edi
or ebx, eax
add esi, 5
mov eax, esi
mov edi, eax
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x4826fd
push ebp
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x54]
push ebp
push ecx
push eax
push edx
call fcn.00482463
mov ebp, dword [esp + 0xcc]
mov edx, eax
add esp, 0x14
mov eax, edi
jmp 0x482701
mov edx, dword [esp + 0x10]
mov dword [edx], ebx
push 4
pop ebx
add edx, ebx
mov dword [esp + 0x10], edx
cmp eax, dword [esp + 0x14]
jb 0x4825c2
mov edi, dword [esp + 0x18]
jmp 0x485066
mov esi, dword [ebp + 0x28]
xor eax, eax
xor edx, edx
mov dword [esp + 0x34], eax
mov eax, esi
push 0xc
pop edi
div edi
sub esi, edx
mov edx, ecx
add esi, dword [ebp + 0x14]
or edx, 0x80
test ecx, 0x1000000
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0xac]
cmove edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
jmp 0x482766
mov edx, dword [esp + 0x10]
jmp 0x48276a
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movzx eax, cx
mov dword [esp + 0x5c], eax
cmp esi, ebx
jae 0x48504e
cmp edx, dword [esp + 0x7c]
jae 0x4850b4
mov edx, dword [ebp]
movzx eax, cx
cmp eax, dword [edx + 0x20]
ja 0x485047
cmp dword [esp + 0x3c], 0
mov edi, esi
movzx ebx, byte [esi]
mov dword [esp + 0x1c], ebx
mov ecx, ebx
lea esi, [edi + 1]
mov dword [esp + 0xac], esi
mov eax, esi
je 0x4828af
cmp ebx, 0xc0
jb 0x4828af
movzx ecx, byte [esi]
and ecx, 0x3f
test bl, 0x20
jne 0x4827dd
mov eax, ebx
mov ebx, ecx
and eax, 0x1f
shl eax, 6
or ebx, eax
inc esi
jmp 0x4828a0
test bl, 0x10
jne 0x4827fe
movzx eax, byte [esi + 1]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
add esi, 2
jmp 0x4828a0
test bl, 8
jne 0x482828
movzx eax, byte [esi + 1]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x4828a0
push 4
pop eax
test al, bl
jne 0x482862
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x4828a0
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
or ecx, ebx
shl ecx, 6
push 0x3f
pop ebx
and eax, ebx
or ecx, eax
movzx eax, byte [esi + 2]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, ebx
mov ebx, ecx
or ebx, eax
add esi, 5
mov dword [esp + 0x1c], ebx
mov eax, esi
mov dword [esp + 0xac], esi
mov ecx, ebx
cmp dword [esp + 0x48], 0
je 0x482946
cmp ecx, 0x5c
jne 0x4828d4
cmp eax, dword [esp + 0x14]
jae 0x4828d4
cmp byte [esi], 0x45
jne 0x4828d4
and dword [esp + 0x48], 0
jmp 0x482aaf
cmp dword [esp + 0x54], 0
jg 0x482c85
cmp dword [esp + 0x64], 0
je 0x4828ec
mov edx, dword [esp + 0x10]
jmp 0x482931
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x482926
push ebp
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x54]
push ebp
push dword [esp + 0x74]
push eax
push edi
call fcn.00482463
mov ebp, dword [esp + 0xcc]
mov edx, eax
mov eax, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x60], eax
jmp 0x48292a
mov edx, dword [esp + 0x10]
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
and dword [esp + 0x4c], 0
push 4
pop eax
mov dword [edx], ebx
add edx, eax
mov dword [esp + 0x10], edx
jmp 0x482762
cmp dword [esp + 0x64], 0
je 0x482a8d
mov eax, dword [esp + 0x2c]
and eax, 0x400080
cmp eax, 0x400080
jne 0x4829b0
cmp ecx, 0xff
jbe 0x482980
xor ecx, ecx
mov eax, ebx
inc ecx
or eax, ecx
cmp eax, 0x200f
je 0x482983
cmp eax, 0x2029
jne 0x4829b0
jmp 0x482983
xor ecx, ecx
inc ecx
cmp ebx, 0x100
jae 0x482a8d
cmp ebx, 0x23
je 0x482a8d
mov eax, dword [ebp + 0x10]
test byte [ebx + eax], cl
jne 0x482a8d
cmp ebx, 0x85
je 0x482a8d
cmp ebx, 0x29
je 0x482a34
cmp ebx, 0x5c
jne 0x482a2b
mov eax, dword [esp + 0x2c]
test eax, 0x400000
je 0x482a2b
mov ebx, dword [esp + 0x14]
push ebp
push 0
push dword [edx + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xc4]
push ebx
push eax
call fcn.0047ce95
mov ecx, dword [esp + 0x44]
add esp, 0x20
test ecx, ecx
jne 0x48500e
sub eax, ecx
je 0x482a20
sub eax, 0x19
je 0x484397
mov esi, dword [esp + 0xac]
sub eax, 1
jne 0x484edc
xor eax, eax
inc eax
mov dword [esp + 0x48], eax
jmp 0x482756
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x482936
and dword [esp + 0x64], 0
mov eax, esi
sub eax, dword [esp + 0x88]
dec eax
cmp eax, 0xff
jg 0x484ee6
mov edx, dword [esp + 0x10]
mov eax, edx
mov ecx, dword [esp + 0x84]
sub eax, ecx
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x14]
sar eax, 2
dec eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x48276a
push 4
pop eax
mov dword [edx], edi
add edx, eax
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x70], eax
jmp 0x482766
mov ecx, dword [esp + 0x14]
cmp ebx, 0x5c
jne 0x482ab9
cmp esi, ecx
jae 0x482ab9
mov al, byte [esi]
cmp al, 0x51
je 0x482aa4
cmp al, 0x45
jne 0x482ab9
xor ecx, ecx
cmp al, 0x51
sete cl
mov dword [esp + 0x48], ecx
inc esi
mov edx, dword [esp + 0x10]
jmp 0x482762
test byte [esp + 0x2c], 0x80
je 0x482bbb
cmp ebx, 0x100
jae 0x482adf
mov eax, dword [ebp + 0x10]
xor edx, edx
inc edx
test byte [ebx + eax], dl
mov edx, dword [esp + 0x10]
jne 0x482762
mov edx, dword [esp + 0x10]
cmp ebx, 0x85
je 0x482762
xor edx, edx
mov eax, ebx
inc edx
or eax, edx
mov edx, dword [esp + 0x10]
cmp eax, 0x200f
je 0x482762
cmp eax, 0x2029
je 0x482762
cmp ebx, 0x23
jne 0x482bbb
mov ebx, dword [esp + 0x14]
cmp esi, ebx
jmp 0x482ba8
mov ecx, dword [ebp + 0x90]
lea edi, [ebp + 0x94]
mov eax, dword [ebp + 0x20]
test ecx, ecx
je 0x482b61
cmp esi, eax
jae 0x482b54
push dword [esp + 0x3c]
push edi
push eax
push ecx
push esi
call fcn.004966b5
add esp, 0x14
test eax, eax
je 0x482b54
xor eax, eax
inc eax
jmp 0x482b56
xor eax, eax
test eax, eax
je 0x482b83
add esi, dword [edi]
jmp 0x482756
sub eax, dword [edi]
cmp esi, eax
ja 0x482b83
mov al, byte [esi]
cmp al, byte [ebp + 0xa0]
jne 0x482b83
xor eax, eax
inc eax
cmp dword [edi], eax
je 0x482b5a
mov al, byte [esi + 1]
cmp al, byte [ebp + 0xa1]
je 0x482b5a
inc esi
cmp dword [esp + 0x3c], 0
mov eax, esi
je 0x482ba6
cmp esi, ebx
jae 0x482ba6
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x482b24
lea esi, [ecx + 1]
mov eax, esi
mov ecx, esi
cmp eax, ebx
jb 0x482b93
cmp eax, ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jb 0x482b24
jmp 0x48276a
cmp ebx, 0x28
jne 0x482bf6
mov eax, ecx
push 2
sub eax, esi
pop ecx
cmp eax, ecx
jl 0x482c29
cmp byte [esi], 0x3f
jne 0x482c29
cmp byte [esi + 1], 0x23
jne 0x482c29
mov ebx, dword [esp + 0x14]
inc esi
cmp esi, ebx
jae 0x484ef1
cmp byte [esi], 0x29
jne 0x482bda
cmp esi, ebx
jae 0x484ef1
inc esi
jmp 0x482756
cmp ebx, 0x2a
je 0x482c63
cmp ebx, 0x2b
je 0x482c63
cmp ebx, 0x3f
je 0x482c63
cmp ebx, 0x7b
jne 0x482c29
lea eax, [esp + 0x24]
mov dword [esp + 0x58], esi
push eax
push 0
push 0
push ecx
lea eax, [esp + 0x68]
push eax
call fcn.0048645b
add esp, 0x14
test eax, eax
jne 0x482c63
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x482c63
push ebp
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x54]
push ebp
push dword [esp + 0x74]
push eax
push edi
call fcn.00482463
mov ebp, dword [esp + 0xcc]
add esp, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x54]
test ecx, ecx
jle 0x482cdf
cmp ebx, 0x28
jne 0x482c85
mov eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 3
jl 0x482c85
mov al, byte [esi]
cmp al, 0x3f
je 0x482c90
cmp al, 0x2a
je 0x482c95
dec esi
mov ecx, 0x80
jmp 0x483810
cmp byte [esi], 0x2a
jne 0x482cae
movzx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
movzx eax, byte [ecx + eax]
xor ecx, ecx
inc ecx
shr eax, 2
and eax, ecx
mov ecx, dword [esp + 0x54]
jmp 0x482cce
movzx eax, byte [esi + 1]
sub eax, 0x21
je 0x482cdf
sub eax, 0x1b
je 0x482cd4
sub eax, 1
je 0x482cdf
sub eax, 6
jne 0x482c85
push 2
pop edx
cmp ecx, edx
sete al
test eax, eax
je 0x482c85
jmp 0x482cdf
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x482cdf
cmp al, 0x21
jne 0x482c85
mov edx, dword [esp + 0x4c]
mov ebp, ecx
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov eax, edx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], ecx
test eax, eax
je 0x482d42
cmp ebx, 0x3f
je 0x482d0e
cmp ebx, 0x2b
jne 0x482d42
cmp ebx, 0x3f
mov ecx, 0x10000
mov ebx, 0x20000
cmove ecx, ebx
add ecx, eax
cmp edx, 0x803d0000
mov edx, dword [esp + 0x10]
push 0xfffffffffffffffc
pop eax
push 0xfffffffffffffff4
pop edi
cmove eax, edi
mov dword [eax + edx], ecx
mov ebp, dword [esp + 0xb8]
jmp 0x482762
cmp ebx, 0x3f
ja 0x483ecb
je 0x483ec1
mov eax, ebx
sub eax, 0x24
je 0x483eb2
push 4
pop edx
sub eax, edx
je 0x482e4d
sub eax, 1
je 0x482da2
sub eax, 1
je 0x482d98
sub eax, 1
je 0x482d8e
sub eax, 3
jne 0x483ef4
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80170000
jmp 0x483efa
mov ebp, 0x80370000
jmp 0x483fd3
mov ebp, 0x80340000
jmp 0x483fd3
mov edi, dword [esp + 0x34]
xor ebx, ebx
mov ecx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x28], ebx
test edi, edi
je 0x482e24
cmp word [edi], cx
jne 0x482e24
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb8]
and eax, 0xfefbdb17
or eax, dword [edi + 8]
mov dword [esp + 0x2c], eax
test byte [edi + 6], bl
je 0x482de2
movzx eax, word [edi + 4]
cmp eax, dword [ebp + 0x74]
jbe 0x482de2
mov dword [ebp + 0x74], eax
movzx eax, word [edi + 6]
mov ecx, eax
not ecx
shr ecx, 1
and ecx, ebx
mov dword [esp + 0x28], ecx
test dl, al
je 0x482e06
mov eax, dword [esp + 0x10]
mov dword [eax], 0x80190000
add eax, edx
mov dword [esp + 0x10], eax
cmp edi, dword [ebp + 0x14]
jne 0x482e17
xor eax, eax
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
jmp 0x482e2b
sub edi, 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edi
jmp 0x482e11
mov ebp, dword [esp + 0xb8]
test cx, cx
je 0x484ef8
mov edx, dword [esp + 0x10]
add ecx, 0xffff
mov dword [esp + 0x18], ecx
mov dword [edx], 0x80190000
jmp 0x483f5a
mov ebx, dword [esp + 0x14]
cmp esi, ebx
jae 0x48380d
mov al, byte [esi]
cmp al, 0x3f
je 0x483228
cmp al, 0x2a
je 0x482eb6
inc dword [esp + 0x18]
test dword [esp + 0x2c], 0x2000
jne 0x482e97
mov ebp, dword [esp + 0xb8]
mov ecx, dword [ebp + 0x74]
cmp ecx, 0xffff
jae 0x484fae
inc ecx
mov dword [ebp + 0x74], ecx
or ecx, 0x80080000
jmp 0x482e9c
mov ecx, 0x801a0000
mov ebp, dword [esp + 0x10]
lea edx, [ebp + 4]
mov dword [ebp], ecx
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x10], edx
jmp 0x482766
mov ebp, dword [esp + 0xb8]
xor ecx, ecx
mov eax, ebx
inc ecx
sub eax, esi
cmp eax, ecx
mov ecx, dword [esp + 0x18]
jle 0x48275c
movzx ecx, byte [esi + 1]
mov dword [esp + 0x1c], ecx
cmp ecx, 0x29
je 0x482756
mov eax, dword [ebp + 0x10]
push ebp
test byte [ecx + eax], dl
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x48]
push eax
push 0
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push ebx
push eax
je 0x4830da
mov dword [esp + 0x44], 0x549d60
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov esi, dword [esp + 0xac]
mov dword [esp + 0x1c], esi
cmp esi, ebx
jae 0x484f24
cmp byte [esi], 0x3a
jne 0x484f24
and dword [esp + 0x30], 0
xor ebp, ebp
xor esi, esi
xor eax, eax
xor edi, edi
xor ecx, ecx
mov ebx, dword [esp + 0x40]
lea edx, [edi*8 + 0x549e38]
mov dword [esp + 0x5c], edx
cmp ebx, dword [edx]
jne 0x482f89
push dword [esp + 0x40]
mov ebx, eax
mov edi, ecx
push dword [esp + 0x24]
push dword [esp + 0x4c]
call fcn.0049503f
add esp, 0xc
test eax, eax
je 0x482faa
mov edx, dword [esp + 0x5c]
mov esi, ebp
mov ecx, dword [esp + 0x20]
lea ebp, [esi + 1]
inc ecx
mov dword [esp + 0x30], ebp
add ecx, dword [edx]
mov edi, ebp
mov dword [esp + 0x20], ecx
mov esi, ebp
mov eax, ebp
mov ebx, ebp
mov ecx, edi
cmp edi, 0x11
jl 0x482f54
mov esi, dword [esp + 0x1c]
cmp ebx, 0x11
jge 0x484f24
mov ebp, dword [esp + 0x80]
mov edx, dword [edi*8 + 0x549e3c]
test ebp, ebp
jle 0x482fda
lea eax, [edx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x484efc
cmp edx, 0x80250000
ja 0x483023
je 0x4830d4
cmp edx, 0x80020000
je 0x483e90
cmp edx, 0x80220000
je 0x483054
cmp edx, 0x80230000
je 0x4836f3
cmp edx, 0x80240000
jne 0x484f1a
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80240000
jmp 0x4836fd
mov eax, 0x80260000
cmp edx, eax
je 0x4830d4
cmp edx, 0x80270000
je 0x483286
cmp edx, 0x80280000
je 0x4830d4
cmp edx, 0x8fff0000
jne 0x484f1a
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x14]
push 4
pop ecx
mov dword [eax], 0x80220000
add eax, ecx
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x10], eax
inc esi
mov dword [esp + 0x18], ecx
cmp edx, 0x8fff0000
mov edx, eax
jne 0x48276a
mov edi, dword [esp + 0x34]
push 4
pop eax
mov dword [edx], 0x80020000
add edx, eax
mov dword [esp + 0x10], edx
test edi, edi
jne 0x4830aa
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x34], edi
jmp 0x4830bb
add edi, 0xc
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x74]
jae 0x484f77
mov word [edi], cx
mov ecx, dword [esp + 0x2c]
and ecx, 0x10424e8
mov word [edi + 6], ax
mov dword [edi + 8], ecx
jmp 0x482766
dec esi
jmp 0x4836c1
mov dword [esp + 0x44], 0x549c98
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov esi, dword [esp + 0xac]
mov dword [esp + 0x1c], esi
cmp esi, ebx
jae 0x485055
mov al, byte [esi]
cmp al, 0x3a
je 0x483113
cmp al, 0x29
jne 0x485055
xor ebx, ebx
xor edx, edx
and dword [esp + 0x80], ebx
xor ecx, ecx
mov esi, dword [esp + 0x80]
xor eax, eax
mov dword [esp + 0x30], ebx
imul ebp, eax, 0xc
mov eax, dword [esp + 0x40]
cmp eax, dword [ebp + 0x549cc8]
jne 0x483155
push eax
push dword [esp + 0x24]
mov edi, ecx
push dword [esp + 0x4c]
call fcn.0049503f
add esp, 0xc
test eax, eax
je 0x48317a
mov edx, esi
mov ecx, dword [esp + 0x20]
lea ebx, [edx + 1]
inc ecx
mov dword [esp + 0x30], ebx
add ecx, dword [ebp + 0x549cc8]
mov eax, ebx
mov dword [esp + 0x20], ecx
mov esi, ebx
mov edx, ebx
mov ecx, ebx
mov edi, ebx
cmp eax, 9
jl 0x48312d
mov esi, dword [esp + 0x1c]
cmp edi, 9
jge 0x485055
cmp byte [esi], 0x3a
jne 0x48319b
lea eax, [esi + 1]
cmp eax, dword [esp + 0x14]
jae 0x48319b
cmp byte [eax], 0x29
cmove esi, eax
imul ecx, ebx, 0xc
mov edx, dword [ecx + 0x549cd0]
test edx, edx
jle 0x4831b1
cmp byte [esi], 0x3a
jne 0x484f2e
mov ecx, dword [ecx + 0x549ccc]
xor eax, eax
mov ebx, dword [esp + 0x10]
cmp ecx, 0x802a0000
mov dword [esp + 0x8c], ebx
sete al
mov dword [esp + 0x28], eax
mov al, byte [esi]
lea edi, [ebx + 4]
inc esi
cmp al, 0x3a
jne 0x48321f
test edx, edx
jns 0x4831ea
mov dword [esp + 0x70], ecx
mov eax, 0x80290000
jmp 0x4831fc
xor eax, eax
mov edx, 0x10000
cmp ecx, 0x80290000
cmovne eax, edx
add eax, ecx
mov dword [ebx], eax
lea edx, [edi + 4]
xor eax, eax
mov dword [esp + 0x84], edi
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x64], eax
jmp 0x482d36
mov dword [ebx], ecx
mov edx, edi
jmp 0x48406f
inc esi
mov dword [esp + 0xac], esi
cmp esi, ebx
jae 0x48380d
mov cl, byte [esi]
movzx eax, cl
cmp eax, 0x35
ja 0x48364d
je 0x4837a8
cmp eax, 0x2b
ja 0x48361b
je 0x4835f9
sub eax, 0x21
je 0x483014
sub eax, 5
je 0x483c66
sub eax, 1
je 0x4835f2
sub eax, 1
je 0x483295
push 2
pop edx
sub eax, edx
jne 0x483783
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80270000
jmp 0x4836fd
inc esi
mov dword [esp + 0xac], esi
cmp esi, ebx
jae 0x48380d
mov ecx, dword [esp + 0x18]
mov al, byte [esi]
inc ecx
mov dword [esp + 0x18], ecx
cmp al, 0x3f
je 0x4835cb
cmp al, 0x2a
je 0x4835cb
mov ebp, dword [esp + 0xb8]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push 0xa1
push 0xffff
push dword [ebp + 0x74]
lea eax, [esp + 0xc0]
push ebx
push eax
call fcn.00486395
add esp, 0x1c
test eax, eax
je 0x483333
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0xac]
test ecx, ecx
jle 0x484f48
mov edx, dword [esp + 0x10]
push 4
pop eax
push 2
mov dword [edx], 0x80120000
add edx, eax
pop edi
mov eax, esi
sub eax, dword [ebp + 0x1c]
sub eax, edi
push 4
mov dword [edx], eax
mov dword [esp + 0x3c], eax
pop eax
add edx, eax
push eax
mov dword [edx], ecx
pop ecx
jmp 0x4835b4
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x48500e
mov edi, dword [esp + 0xac]
sub ebx, edi
cmp ebx, 0xa
jl 0x483472
push 7
push 0x52c878
push edi
call fcn.0049503f
add esp, 0xc
test eax, eax
jne 0x483472
lea esi, [edi + 7]
cmp byte [esi], 0x29
je 0x483472
xor ebx, ebx
xor edi, edi
and dword [esp + 0x20], ebx
mov eax, esi
cmp byte [esi], 0x3e
jne 0x48338c
xor eax, eax
inc esi
lea ebx, [eax + 1]
mov eax, esi
cmp byte [esi], 0x3d
jne 0x484f4f
lea esi, [eax + 1]
mov al, byte [esi]
mov dword [esp + 0xac], esi
cmp al, 0x30
jb 0x484f4f
cmp al, 0x39
ja 0x484f4f
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
push 0xb3
push 0x3e8
push 0xffffffffffffffff
push dword [esp + 0x28]
lea eax, [esp + 0xc4]
push eax
call fcn.00486395
add esp, 0x1c
test eax, eax
je 0x484f38
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x14]
cmp esi, ecx
jae 0x484f4f
cmp byte [esi], 0x2e
jne 0x483450
inc esi
cmp esi, ecx
jae 0x484f4f
mov al, byte [esi]
cmp al, 0x30
jb 0x484f4f
cmp al, 0x39
ja 0x484f4f
movzx eax, al
sub eax, 0x30
imul edi, eax, 0xa
inc esi
cmp esi, ecx
jae 0x484f4f
mov al, byte [esi]
cmp al, 0x30
jb 0x483447
cmp al, 0x39
ja 0x483447
movzx eax, al
add eax, 0xffffffd0
add edi, eax
lea eax, [esi + 1]
mov esi, eax
cmp eax, ecx
jae 0x484f4f
cmp byte [esi], 0x29
jne 0x484f4f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push 4
pop ecx
mov dword [edx], 0x80150000
add edx, ecx
mov dword [edx], ebx
add edx, ecx
mov dword [edx], eax
add edx, ecx
mov dword [edx], edi
jmp 0x4835b0
mov al, byte [edi]
xor ebp, ebp
cmp al, 0x52
jne 0x483494
xor ecx, ecx
inc ecx
cmp ebx, ecx
jle 0x4834a7
lea eax, [edi + 1]
cmp byte [eax], 0x26
jne 0x4834a7
mov ebp, ecx
mov dword [esp + 0xac], eax
jmp 0x4834af
cmp al, 0x3c
jne 0x48349c
push 0x3e
jmp 0x4834b1
cmp al, 0x27
jne 0x4834a7
push 0x27
pop eax
mov esi, eax
jmp 0x4834b2
dec edi
mov dword [esp + 0xac], edi
push 0x29
pop esi
mov eax, dword [esp + 0xb8]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x48]
push eax
push esi
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push dword [esp + 0x30]
push eax
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov ebx, dword [esp + 0x40]
test ebp, ebp
je 0x483503
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80130000
jmp 0x483576
cmp esi, 0x29
jne 0x483580
mov esi, dword [esp + 0x44]
cmp ebx, 6
jne 0x48352c
push 6
push 0x54a198
push esi
call fcn.0049503f
add esp, 0xc
test eax, eax
jne 0x48352c
mov eax, 0x80100000
jmp 0x483570
xor ecx, ecx
inc ecx
mov dword [esp + 0x30], ecx
mov eax, ecx
cmp ebx, ecx
jle 0x48355d
mov edi, ecx
mov edx, ecx
mov cl, byte [esi + ecx]
cmp cl, 0x30
jb 0x48355d
mov eax, edx
cmp cl, 0x39
ja 0x48355d
lea eax, [edi + 1]
mov ecx, eax
mov dword [esp + 0x30], eax
mov edi, eax
mov edx, eax
cmp ecx, ebx
jl 0x48353d
cmp byte [esi], 0x52
jne 0x48356b
cmp eax, ebx
mov eax, 0x80140000
jge 0x483570
mov eax, 0x80110000
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov esi, dword [esp + 0xac]
dec esi
jmp 0x483591
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xac]
mov dword [edx], 0x80110000
mov eax, dword [edx]
push 4
pop ecx
add edx, ecx
cmp eax, 0x80100000
je 0x4835a3
mov dword [edx], ebx
add edx, ecx
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0xb8]
mov dword [edx], eax
mov ebx, dword [esp + 0x14]
cmp esi, ebx
jae 0x484f59
cmp byte [esi], 0x29
jne 0x484f59
inc esi
jmp 0x484055
mov edx, dword [esp + 0x10]
push 4
pop eax
push 2
mov dword [edx], 0x800f0000
add edx, eax
pop eax
dec esi
mov dword [esp + 0x54], eax
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x10], edx
jmp 0x48276a
push 0x27
jmp 0x483a88
mov eax, ebx
push 2
sub eax, esi
pop edx
cmp eax, edx
jl 0x483611
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
jbe 0x4837a8
mov ecx, 0x81
jmp 0x483810
sub eax, 0x30
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 1
je 0x4837a8
jmp 0x483783
cmp eax, 0x3d
ja 0x48375d
je 0x4836f3
sub eax, 0x36
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 1
je 0x4837a8
sub eax, 3
jne 0x483783
xor ecx, ecx
mov eax, ebx
sub eax, esi
inc ecx
cmp eax, ecx
jle 0x483a86
mov al, byte [esi + 1]
cmp al, 0x3d
je 0x4836bc
cmp al, 0x21
je 0x4836ab
cmp al, 0x2a
jne 0x483a86
cmp al, 0x21
mov edx, 0x80280000
mov eax, 0x80260000
cmove edx, eax
jmp 0x4836c1
mov edx, 0x80250000
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xb8]
push 2
mov dword [eax], edx
lea ecx, [eax + 4]
mov eax, dword [esp + 0xb8]
xor edx, edx
inc edx
mov dword [eax], edx
mov eax, esi
sub eax, dword [ebx + 0x1c]
pop edx
sub eax, edx
add esi, edx
mov dword [esp + 0x38], eax
mov edx, ecx
mov dword [ecx], eax
jmp 0x483705
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80230000
mov ebx, dword [esp + 0xb8]
inc esi
mov ecx, dword [esp + 0x18]
add edx, 4
inc ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
test ebp, ebp
jle 0x483751
mov edi, dword [esp + 0x34]
test edi, edi
jne 0x48372a
mov edi, dword [ebx + 0x14]
mov dword [esp + 0x34], edi
jmp 0x48373b
add edi, 0xc
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x74]
jae 0x484f77
push 2
pop eax
mov word [edi + 6], ax
mov eax, dword [esp + 0x2c]
and eax, 0x10424e8
mov word [edi], cx
mov dword [edi + 8], eax
mov ebp, dword [esp + 0xb8]
jmp 0x483f63
sub eax, 0x3e
je 0x483e94
sub eax, 5
je 0x483d26
sub eax, 0xd
je 0x483a6c
push 2
pop edx
sub eax, edx
je 0x483a4e
xor edx, edx
inc edx
cmp cl, 0x2d
jne 0x48382a
mov eax, ebx
sub eax, esi
cmp eax, edx
jle 0x48382a
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
ja 0x48382a
mov ebp, dword [esp + 0xb8]
sub cl, 0x30
cmp cl, 9
ja 0x4837bc
or eax, 0xffffffff
jmp 0x4837bf
mov eax, dword [ebp + 0x74]
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0xa1
push 0xffff
push eax
lea eax, [esp + 0xc0]
push ebx
push eax
call fcn.00486395
add esp, 0x1c
test eax, eax
je 0x484f38
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0xac]
test eax, eax
js 0x484f60
cmp esi, ebx
jae 0x48380d
cmp byte [esi], 0x29
je 0x48425b
push 0x72
pop ecx
mov eax, dword [esp + 0xb8]
sub esi, dword [eax + 0x1c]
mov dword [eax + 0x54], esi
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
inc eax
mov dword [esp + 0x18], eax
test edi, edi
jne 0x48384b
mov ebp, dword [esp + 0xb8]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x34], edi
jmp 0x483863
add edi, 0xc
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x74]
jae 0x484f77
mov ebp, dword [esp + 0xb8]
mov ecx, dword [esp + 0x2c]
mov word [edi], ax
xor eax, eax
mov word [edi + 6], ax
mov eax, ecx
and eax, 0x10424e8
mov dword [edi + 8], eax
cmp byte [esi], 0x7c
jne 0x4838b3
mov ax, word [ebp + 0x74]
mov word [edi + 2], ax
mov ax, word [ebp + 0x74]
mov word [edi + 6], dx
mov edx, dword [esp + 0x10]
mov word [edi + 4], ax
or dword [ebp + 0x70], 0x200000
push 4
pop eax
mov dword [edx], 0x801a0000
add edx, eax
mov dword [esp + 0x10], edx
inc esi
jmp 0x482766
xor eax, eax
mov ebx, edx
mov dword [edi + 2], eax
mov ebp, ecx
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x20]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
cmp esi, eax
jae 0x4839a2
cmp byte [esi], 0x5e
jne 0x4838e8
and dword [esp + 0x2c], 0xfeffdb57
xor ebx, ebx
inc esi
cmp esi, eax
jae 0x4839a2
mov ecx, eax
mov al, byte [esi]
cmp al, 0x29
je 0x48399a
cmp al, 0x3a
je 0x48399a
inc esi
cmp al, 0x6d
ja 0x483957
je 0x48394f
cmp al, 0x2d
je 0x48393f
cmp al, 0x4a
je 0x48392c
cmp al, 0x55
je 0x483924
cmp al, 0x69
jne 0x484f6f
or dword [edi], 8
jmp 0x483992
or dword [edi], 0x40000
jmp 0x483992
mov eax, dword [esp + 0xb8]
or dword [edi], 0x40
or dword [eax + 0x70], 0x400
jmp 0x483992
test ebx, ebx
je 0x484f64
lea edi, [esp + 0x1c]
xor ebx, ebx
jmp 0x483992
or dword [edi], 0x400
jmp 0x483992
cmp al, 0x6e
je 0x483a07
cmp al, 0x73
je 0x483a02
cmp al, 0x78
jne 0x484f6f
mov ecx, dword [edi]
mov eax, ecx
or eax, 0x80
mov dword [edi], eax
cmp esi, dword [esp + 0x14]
jae 0x48398e
cmp byte [esi], 0x78
jne 0x48398e
or ecx, 0x1000080
inc esi
mov dword [edi], ecx
mov ecx, dword [esp + 0x14]
cmp esi, ecx
jb 0x4838f2
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, edx
and eax, 0x1000080
cmp eax, 0x80
je 0x4839b4
test cl, cl
jns 0x4839ba
or ecx, 0x1000000
or edx, dword [esp + 0x2c]
not ecx
mov ebx, dword [esp + 0x14]
and ecx, edx
mov dword [esp + 0x2c], ecx
cmp esi, ebx
jae 0x48380d
mov al, byte [esi]
inc esi
cmp al, 0x29
jne 0x483a1b
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
movzx edx, ax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x18], edx
cmp edi, dword [eax + 0x14]
jbe 0x483a0f
lea eax, [edi - 0xc]
cmp word [eax], dx
jne 0x483a0f
mov dword [esp + 0x34], eax
jmp 0x483a12
or dword [edi], 0x20
jmp 0x483992
or dword [edi], 0x2000
jmp 0x483992
mov word [edi], dx
mov edx, dword [esp + 0x10]
push 4
pop eax
jmp 0x483a2e
mov edx, dword [esp + 0x10]
push 4
pop eax
mov dword [edx], 0x801a0000
add edx, eax
mov dword [esp + 0x10], edx
cmp ecx, ebp
mov ebp, dword [esp + 0xb8]
je 0x482766
mov dword [edx], 0x801b0000
add edx, eax
mov dword [edx], ecx
add edx, eax
jmp 0x484057
xor eax, eax
inc esi
mov dword [esp + 0x30], eax
cmp esi, ebx
jae 0x483a62
cmp byte [esi], 0x29
je 0x484254
mov ecx, 0x9e
jmp 0x483810
inc esi
mov dword [esp + 0xac], esi
cmp esi, ebx
jae 0x48380d
mov al, byte [esi]
cmp al, 0x3c
jne 0x483c62
push 0x3e
pop eax
mov ebp, dword [esp + 0xb8]
lea ecx, [esp + 0x24]
push ebp
push ecx
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x48]
push ecx
push eax
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov eax, dword [ebp + 0x74]
cmp eax, 0xffff
jae 0x484fa7
mov ecx, dword [esp + 0x10]
inc eax
mov dword [ebp + 0x74], eax
or eax, 0x80080000
push 4
mov dword [ecx], eax
movzx edx, word [ebp + 0x58]
pop eax
add ecx, eax
inc dword [esp + 0x18]
mov eax, 0x2710
mov dword [esp + 0x10], ecx
cmp dx, ax
jae 0x484fa0
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0xb8]
lea ecx, [ebp + 3]
movzx eax, word [ebx + 0x5a]
cmp ecx, eax
jbe 0x483b1c
lea eax, [ebp + 3]
mov word [ebx + 0x5a], ax
mov esi, dword [ebx + 0x64]
xor eax, eax
and dword [esp + 0x20], 0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x30], ebx
cmp ax, dx
jae 0x483ba0
mov ecx, dword [esp + 0xb8]
movzx eax, word [esi + 8]
cmp ebp, eax
jne 0x483b82
push ebp
push dword [esi]
push dword [esp + 0x4c]
call fcn.0049503f
mov ecx, dword [esp + 0xc4]
add esp, 0xc
test eax, eax
jne 0x483b82
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x74]
je 0x483ba0
test byte [esp + 0x2c], 0x40
je 0x484f81
xor eax, eax
inc eax
mov word [esi + 0xa], ax
mov dword [esp + 0x20], eax
mov dword [ecx + 0xb8], eax
jmp 0x483b8e
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x74]
je 0x484f8b
movzx eax, word [ecx + 0x58]
inc ebx
add esi, 0xc
mov dword [esp + 0x30], ebx
mov edi, ebx
cmp ebx, eax
jl 0x483b3a
mov esi, dword [esp + 0xb8]
movzx eax, word [esi + 0x58]
cmp edi, eax
jl 0x4843a0
mov ecx, dword [esi + 0x68]
cmp eax, ecx
jb 0x483c07
lea edi, [ecx + ecx]
mov ecx, dword [esi]
imul eax, edi, 0xc
push dword [ecx + 8]
push eax
call dword [ecx]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x484f92
mov ebx, dword [esp + 0xb8]
imul ecx, dword [ebx + 0x68], 0xc
push ecx
push dword [ebx + 0x64]
push esi
call fcn.004b8970
add esp, 0xc
cmp dword [ebx + 0x68], 0x14
jbe 0x483bff
mov eax, dword [ebx]
push dword [eax + 8]
push dword [ebx + 0x64]
call dword [eax + 4]
pop ecx
pop ecx
mov dword [ebx + 0x64], esi
mov esi, ebx
mov dword [esi + 0x68], edi
movzx eax, word [esi + 0x58]
mov edx, dword [esp + 0x44]
imul ecx, eax, 0xc
mov eax, dword [esi + 0x64]
mov dword [ecx + eax], edx
movzx eax, word [esi + 0x58]
imul ecx, eax, 0xc
mov eax, dword [esi + 0x64]
mov esi, dword [esp + 0xac]
mov word [ecx + eax + 8], bp
mov ebp, dword [esp + 0xb8]
movzx eax, word [ebp + 0x58]
mov ecx, dword [ebp + 0x64]
imul edx, eax, 0xc
mov eax, dword [ebp + 0x74]
mov dword [edx + ecx + 4], eax
movzx eax, word [ebp + 0x58]
mov edx, dword [esp + 0x20]
imul ecx, eax, 0xc
mov eax, dword [ebp + 0x64]
mov word [ecx + eax + 0xa], dx
inc word [ebp + 0x58]
jmp 0x482ab0
cmp al, 0x3e
jne 0x483cad
mov ebp, dword [esp + 0xb8]
lea eax, [esp + 0x24]
push ebp
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x48]
push eax
push 0x29
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80210000
jmp 0x483cfa
cmp al, 0x3d
jne 0x484fb8
mov ebp, dword [esp + 0xb8]
lea eax, [esp + 0x24]
push ebp
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x48]
push eax
push 0x29
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484f38
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80040000
mov eax, dword [esp + 0x40]
push 4
pop ecx
add edx, ecx
mov dword [edx], eax
add edx, ecx
mov eax, dword [esp + 0x38]
mov dword [edx], eax
add edx, ecx
xor eax, eax
mov dword [esp + 0x10], edx
inc eax
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0xac]
jmp 0x482766
inc esi
cmp esi, ebx
jae 0x48380d
mov ecx, dword [esp + 0x60]
lea eax, [ebp - 1]
mov dword [esp + 0x54], eax
test ecx, ecx
je 0x483d5f
test byte [esp + 0x2c], dl
mov edx, dword [esp + 0x10]
je 0x483d63
lea eax, [edx - 0x10]
cmp ecx, eax
jne 0x483d63
cmp dword [edx - 4], 0xff
cmove edx, ecx
mov dword [esp + 0x10], edx
jmp 0x483d63
mov edx, dword [esp + 0x10]
xor eax, eax
mov edi, edx
inc eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], eax
mov al, byte [esi]
mov dword [esp + 0x50], edi
cmp al, 0x29
je 0x483e25
cmp al, 0x30
jb 0x483d8a
cmp al, 0x39
jbe 0x483e25
and dword [esp + 0x30], 0
mov edx, esi
mov ecx, dword [0x5682f4]
test ecx, ecx
je 0x483db8
xor edi, edi
movzx ebx, al
xor eax, eax
cmp ebx, ecx
je 0x483dc2
inc edi
mov eax, edi
mov dword [esp + 0x30], edi
mov ecx, dword [eax*4 + 0x5682f4]
test ecx, ecx
jne 0x483da2
mov ecx, 0xb6
jmp 0x483810
mov ecx, dword [eax*4 + 0x5682d0]
test ecx, ecx
je 0x483db8
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov dword [ebx], 0x80070000
add ebx, 0xc
inc esi
cmp esi, ebp
jae 0x484fc2
movzx eax, byte [esi]
cmp eax, ecx
jne 0x483dde
inc esi
cmp esi, ebp
jae 0x483dfa
movzx eax, byte [esi]
cmp eax, ecx
je 0x483dde
mov ebp, dword [esp + 0xb8]
mov eax, esi
mov edi, dword [esp + 0x60]
sub eax, edx
mov dword [ebx], eax
push 4
pop ecx
add ebx, ecx
sub edx, dword [ebp + 0x1c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], ebx
mov dword [ebx], edx
mov edx, ebx
mov ebx, dword [esp + 0x14]
jmp 0x483e6d
mov dword [edx], 0x80060000
xor ecx, ecx
add edx, 0xc
mov dword [esp + 0x10], edx
cmp esi, ebx
jae 0x483e61
mov dl, byte [esi]
lea eax, [edx - 0x30]
cmp al, 9
ja 0x483e5d
imul ecx, ecx, 0xa
movzx eax, dl
add ecx, 0xffffffd0
add ecx, eax
inc esi
cmp ecx, 0xff
jg 0x484fce
cmp esi, ebx
jb 0x483e38
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb8]
push 4
mov dword [edx], ecx
pop ecx
cmp esi, ebx
jae 0x484fd8
cmp byte [esi], 0x29
jne 0x484fd8
inc esi
mov eax, esi
sub eax, dword [ebp + 0x1c]
mov dword [edi + 4], eax
and dword [edi + 8], 0
jmp 0x484055
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push 4
pop eax
mov dword [edx], 0x80020000
add edx, eax
inc ecx
inc esi
mov dword [esp + 0x18], ecx
jmp 0x4835e2
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80160000
jmp 0x48406a
mov ebp, 0x803a0000
jmp 0x483fd3
mov eax, ebx
sub eax, 0x5b
je 0x484555
sub eax, 1
je 0x484078
push 2
pop ecx
sub eax, ecx
je 0x484060
sub eax, 0x1d
je 0x483f6c
sub eax, 1
je 0x483f0f
mov edx, dword [esp + 0x10]
mov dword [edx], ebx
push 4
pop eax
add edx, eax
xor eax, eax
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
jmp 0x482d36
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x483f49
cmp word [edi], cx
jne 0x483f49
mov ebp, dword [esp + 0xb8]
xor eax, eax
inc eax
test byte [edi + 6], al
je 0x483f50
movzx eax, word [edi + 4]
cmp dword [ebp + 0x74], eax
jbe 0x483f40
mov ax, word [ebp + 0x74]
mov word [edi + 4], ax
movzx eax, word [edi + 2]
mov dword [ebp + 0x74], eax
jmp 0x483f50
mov ebp, dword [esp + 0xb8]
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80010000
push 4
pop eax
add edx, eax
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x14]
jmp 0x48276a
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0xbc]
push eax
call fcn.0048645b
add esp, 0x14
test eax, eax
jne 0x483fc7
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x48500e
mov edx, dword [esp + 0x10]
push 4
pop eax
mov dword [edx], ebx
add edx, eax
mov esi, dword [esp + 0xac]
xor eax, eax
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
jmp 0x482d36
mov esi, dword [esp + 0xac]
mov ebp, 0x803d0000
mov dword [esp + 0x4c], ebp
test edi, edi
je 0x484fe2
mov edx, dword [esp + 0x10]
lea ecx, [edx - 4]
cmp dword [ecx], 0x802a0000
jne 0x48401b
mov edi, dword [esp + 0x8c]
cmp ecx, edi
jb 0x48400b
push 4
pop edx
mov eax, dword [ecx]
mov dword [ecx + 4], eax
sub ecx, edx
cmp ecx, edi
jae 0x483ffc
mov edx, dword [esp + 0x10]
mov dword [edi], 0x801a0000
mov dword [edx + 4], 0x80190000
add edx, 8
mov ecx, dword [esp + 0x18]
push 4
mov dword [edx], ebp
mov ebp, dword [esp + 0xbc]
pop eax
add edx, eax
cmp ebx, 0x7b
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
jne 0x48276a
mov eax, dword [esp + 0x90]
push 4
mov dword [edx], eax
mov eax, dword [esp + 0x98]
pop ecx
add edx, ecx
mov dword [edx], eax
add edx, ecx
mov dword [esp + 0x10], edx
jmp 0x482766
mov edx, dword [esp + 0x10]
mov dword [edx], 0x80090000
push 4
pop eax
add edx, eax
mov dword [esp + 0x10], edx
jmp 0x482d36
mov ebx, dword [esp + 0xb8]
mov ebp, esi
push ebx
push ecx
mov dword [esp + 0x60], ebp
mov eax, dword [ebx]
push dword [eax + 0x24]
lea eax, [esp + 0x30]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0xc8]
push eax
call fcn.0047ce95
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov edi, eax
test ecx, ecx
jne 0x4840ef
test edi, edi
je 0x484421
js 0x4843d0
lea eax, [edi - 6]
cmp eax, 0x16
ja case.0x4840d5.13
movzx eax, byte [eax + 0x4850ed]
jmp dword [eax*4 + 0x4850d5]
test dword [esp + 0x2c], 0x100000
je case.0x4840d5.12
mov ecx, 0xb7
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0x14]
test byte [esp + 0x78], 2
je 0x483810
mov esi, ebp
cmp ebp, ebx
jb 0x484435
push 0x5c
pop edx
jmp 0x48453b
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
lea eax, [edi - 0x7fe80000]
push 4
mov dword [edx], eax
pop eax
mov esi, dword [esp + 0xac]
add edx, eax
mov dword [esp + 0x10], edx
mov ebp, ebx
jmp 0x482762
and dword [esp + 0x20], 0
lea eax, [esp + 0x24]
and dword [esp + 0x28], 0
push ebx
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00481e2c
add esp, 0x18
test eax, eax
je 0x484317
cmp dword [esp + 0x98], 0
je 0x484190
xor eax, eax
cmp edi, 0xf
sete al
lea edi, [eax + 0xf]
mov edx, dword [esp + 0x10]
lea eax, [edi - 0x7fe80000]
movzx ecx, word [esp + 0x20]
push 4
pop ebx
mov dword [edx], eax
add edx, ebx
movzx eax, word [esp + 0x28]
shl ecx, 0x10
or ecx, eax
mov dword [edx], ecx
add edx, ebx
jmp 0x483fb0
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0x14]
cmp esi, ebx
jae 0x484320
mov al, byte [esi]
cmp al, 0x7b
je 0x4841e2
cmp al, 0x3c
je 0x484289
cmp al, 0x27
jne 0x484320
push 0x7d
pop ebx
cmp al, 0x27
push 0x27
pop eax
cmove ebx, eax
cmp edi, 0x1b
jne 0x4842ab
cmp ebx, 0x7d
je 0x4842ab
lea eax, [esi + 1]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0xc0]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [esp + 0x34]
push dword [esp + 0x28]
push eax
call fcn.00486395
add esp, 0x1c
test eax, eax
je 0x48429f
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x14]
jae 0x484291
movzx eax, byte [ecx]
cmp eax, ebx
jne 0x484291
mov eax, dword [esp + 0x30]
mov esi, ecx
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0xb8]
mov edx, dword [esp + 0x10]
or eax, 0x80200000
push 4
pop ecx
mov dword [edx], eax
add edx, ecx
mov eax, esi
sub eax, dword [ebp + 0x1c]
inc esi
mov dword [esp + 0x38], eax
mov dword [edx], eax
add edx, ecx
xor eax, eax
mov dword [esp + 0x10], edx
inc eax
mov dword [esp + 0x28], eax
jmp 0x482766
push 0x3e
pop ebx
jmp 0x4841ed
mov ecx, 0x9d
mov dword [esp + 0x24], ecx
jmp 0x4840f6
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x4840f6
push dword [esp + 0xb8]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x48]
push eax
push ebx
push dword [esp + 0x54]
lea eax, [esp + 0xc8]
push dword [esp + 0x30]
push eax
call fcn.004860a5
add esp, 0x24
test eax, eax
je 0x484317
cmp edi, 0x1c
je 0x4842f2
mov eax, 0x80210000
cmp ebx, 0x7d
jne 0x4842f7
mov eax, 0x80040000
mov edx, dword [esp + 0x10]
push 4
pop ecx
mov dword [edx], eax
add edx, ecx
mov eax, dword [esp + 0x40]
mov dword [edx], eax
add edx, ecx
mov eax, dword [esp + 0x38]
mov dword [edx], eax
add edx, ecx
jmp 0x483fb0
mov ecx, dword [esp + 0x24]
jmp 0x4840ef
mov ecx, 0xa9
cmp edi, 0x1b
lea eax, [ecx - 0xc]
cmove ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4840fa
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
mov eax, 0x20000
test dword [esp + 0x2c], eax
je case.0x4840d5.13
cmp edi, 7
je 0x484361
cmp edi, 9
je 0x484361
mov eax, 0x8018000f
cmp edi, 0xb
jne 0x484366
mov eax, 0x80180010
mov edx, dword [esp + 0x10]
push 4
mov dword [edx], eax
pop eax
add edx, eax
mov dword [esp + 0x10], edx
sub edi, 6
je 0x4843c5
sub edi, 1
je 0x4843c5
sub edi, 1
je 0x4843ba
sub edi, 1
je 0x4843ba
sub edi, 1
je 0x4843af
sub edi, 1
je 0x4843af
mov ebp, ebx
jmp 0x4843a6
mov edx, dword [esp + 0x10]
jmp 0x483d1a
mov edx, dword [esp + 0x10]
mov ebp, esi
mov ebx, dword [esp + 0x14]
jmp 0x483d1a
mov dword [edx], 0x90000
jmp 0x48412d
mov dword [edx], 0x70000
jmp 0x48412d
mov dword [edx], 0x3000d
jmp 0x48412d
mov edx, dword [esp + 0x10]
neg edi
mov esi, dword [esp + 0xac]
mov ebp, ebx
mov eax, edi
mov ecx, esi
or eax, 0x80030000
push 4
sub ecx, dword [ebp + 0x1c]
mov dword [edx], eax
dec ecx
pop eax
add edx, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], edx
cmp edi, 0xa
jge 0x48440d
cmp dword [ebp + edi*4 + 0x2c], 0xffffffff
jne 0x484415
mov dword [ebp + edi*4 + 0x2c], ecx
jmp 0x484415
mov dword [edx], ecx
add edx, eax
mov dword [esp + 0x10], edx
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x482762
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
jmp 0x48453b
cmp dword [esp + 0x3c], 0
lea esi, [ebp + 1]
movzx edx, byte [ebp]
je 0x48453b
cmp edx, 0xc0
jb 0x48453b
test dl, 0x20
jne 0x48446c
movzx eax, byte [esi]
and edx, 0x1f
shl edx, 6
and eax, 0x3f
or edx, eax
inc esi
jmp 0x48453b
test dl, 0x10
jne 0x484493
movzx eax, byte [esi]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
jmp 0x48453b
test dl, 8
jne 0x4844c3
movzx eax, byte [esi]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x48453b
movzx ecx, byte [esi]
push 4
pop eax
push 0x3f
pop edi
and ecx, edi
test al, dl
jne 0x484502
movzx eax, byte [esi + 1]
and edx, 3
shl edx, 6
and eax, edi
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
and eax, edi
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, edi
shl edx, 6
or edx, eax
push 4
pop eax
add esi, eax
jmp 0x48453b
xor eax, eax
inc eax
and edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, edi
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, edi
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, edi
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, edi
or edx, eax
add esi, 5
mov ebp, dword [esp + 0x10]
xor eax, eax
push 4
mov dword [ebp], edx
mov edx, ebp
pop ebp
add edx, ebp
inc eax
mov dword [esp + 0x28], eax
jmp 0x482ea6
mov edi, dword [esp + 0x14]
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
mov eax, edi
push 6
sub eax, esi
pop ebp
cmp eax, ebp
jl 0x48460e
push ebp
push 0x54a184
push esi
call fcn.0049503f
add esp, 0xc
test eax, eax
je 0x484595
push ebp
push 0x54a18c
push esi
call fcn.0049503f
add esp, 0xc
test eax, eax
jne 0x48460e
mov ecx, dword [esp + 0x10]
push 4
pop ebx
lea eax, [ecx + 4]
mov dword [ecx], 0x80180005
add eax, ebx
cmp byte [esi + 2], 0x3c
jne 0x4845b6
mov dword [ecx + ebx], 0x80230000
jmp 0x4845ce
mov dword [ecx + ebx], 0x80250000
xor edx, edx
mov ecx, dword [esp + 0xb4]
inc edx
mov dword [ecx], edx
and dword [eax], 0
add eax, ebx
mov ecx, 0x20000
lea edx, [eax + 4]
test dword [esp + 0x2c], ecx
jne 0x4845e4
mov dword [eax], 0x8018000b
jmp 0x4845f2
mov dword [eax], 0x80180010
mov dword [edx], 0x90000
add edx, ebx
mov dword [edx], 0x80190000
add edx, ebx
add esi, ebp
mov dword [esp + 0x10], edx
mov ebp, dword [esp + 0xb8]
mov ebx, edi
jmp 0x482766
cmp esi, edi
jae 0x484637
mov al, byte [esi]
cmp al, 0x3a
je 0x484620
cmp al, 0x2e
je 0x484620
cmp al, 0x3d
jne 0x484637
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0047dedc
add esp, 0xc
test eax, eax
jne 0x484fe6
xor ebp, ebp
jmp 0x4847d1
movzx ebx, byte [esi]
inc esi
cmp dword [esp + 0x3c], 0
mov eax, ebx
mov dword [esp + 0x1c], ebx
mov ecx, eax
mov dword [esp + 0xac], esi
mov edx, esi
mov edi, esi
je 0x484765
cmp ebx, 0xc0
jb 0x484765
test al, 0x20
jne 0x484688
movzx ebx, byte [esi]
and eax, 0x1f
and ebx, 0x3f
shl eax, 6
or ebx, eax
inc esi
mov edx, esi
mov edi, esi
jmp 0x484758
test al, 0x10
jne 0x4846ab
movzx ebx, byte [esi]
and eax, 0xf
and ebx, 0x3f
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x48467f
test al, 8
jne 0x4846da
movzx ebx, byte [esi]
and eax, 7
and ebx, 0x3f
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x48467f
push 4
pop ecx
push 0x3f
test cl, al
movzx ecx, byte [esi]
pop edx
jne 0x484719
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edx
and ecx, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, edx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, edx
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x484754
xor eax, eax
and ecx, edx
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edx
or ebx, eax
add esi, 5
mov edx, esi
mov edi, edx
mov dword [esp + 0x1c], ebx
mov ecx, ebx
mov dword [esp + 0xac], esi
cmp ecx, 0x5c
jne 0x4847ab
cmp edi, dword [esp + 0x14]
jae 0x48477e
cmp byte [esi], 0x45
jne 0x48477e
mov edi, dword [esp + 0x14]
lea esi, [edx + 1]
jmp 0x4847a2
mov edi, dword [esp + 0x14]
mov eax, edi
sub eax, edx
cmp eax, 3
jl 0x4847d9
push 3
push 0x54a194
push esi
call fcn.0049503f
add esp, 0xc
test eax, eax
jne 0x4847d9
add esi, 3
mov dword [esp + 0xac], esi
jmp 0x4847d1
test dword [esp + 0x2c], 0x1000000
je 0x4847bf
cmp ecx, 0x20
je 0x4847cd
cmp ecx, 9
je 0x4847cd
test ebp, ebp
jne 0x4847d9
cmp ebx, 0x5e
jne 0x4847d9
xor eax, eax
lea ebp, [eax + 1]
mov edi, dword [esp + 0x14]
cmp esi, edi
jb 0x48463e
mov ecx, dword [esp + 0xb8]
cmp ebx, 0x5d
jne 0x484807
xor eax, eax
inc eax
test byte [ecx + 0x6c], al
je 0x484807
mov edx, dword [esp + 0x10]
test ebp, ebp
mov eax, 0x800b0000
mov ecx, 0x800c0000
cmovne eax, ecx
mov dword [edx], eax
jmp 0x48406a
test ebp, ebp
mov edx, 0x800e0000
mov eax, 0x800a0000
cmovne eax, edx
mov edx, dword [esp + 0x10]
push 4
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [edx], eax
pop eax
add edx, eax
xor eax, eax
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
xor edi, edi
inc edi
test eax, eax
je 0x484867
cmp ebx, 0x5c
jne 0x484d2e
cmp esi, dword [esp + 0x14]
jae 0x484d2e
cmp byte [esi], 0x45
push 4
pop ecx
jne 0x484d31
and dword [esp + 0x48], 0
inc esi
jmp 0x484d78
test dword [esp + 0x2c], 0x1000000
je 0x484883
cmp ebx, 0x20
je 0x484d75
cmp ebx, 9
je 0x484d75
cmp ebx, 0x5b
jne 0x4849a2
mov ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, esi
cmp eax, 3
jl 0x484d2e
mov al, byte [esi]
cmp al, 0x3a
je 0x4848af
cmp al, 0x2e
je 0x4848af
cmp al, 0x3d
jne 0x484d2e
lea eax, [esp + 0x58]
push eax
push ecx
push esi
call fcn.0047dedc
add esp, 0xc
test eax, eax
je 0x484d2a
xor eax, eax
xor edi, edi
inc eax
cmp ebp, eax
je 0x48502f
cmp byte [esi], 0x3a
jne 0x485002
inc esi
mov ecx, esi
cmp byte [esi], 0x5e
jne 0x4848e9
inc esi
mov edi, eax
mov ecx, esi
mov ebx, dword [esp + 0x58]
mov eax, ebx
sub eax, ecx
push eax
push esi
call fcn.0047de93
mov edx, eax
pop ecx
pop ecx
test edx, edx
js 0x484ff8
mov ecx, dword [esp + 0x14]
lea esi, [ebx + 2]
dec ecx
cmp esi, ecx
jae 0x48491f
cmp byte [esi], 0x2d
jne 0x48491f
cmp byte [esi + 1], 0x5d
jne 0x48502f
xor ebp, ebp
mov eax, 0x20000
mov dword [esp + 0x20], ebp
test dword [esp + 0x2c], eax
je 0x484984
mov eax, dword [edx*8 + 0x78e3f8]
mov ecx, dword [edx*8 + 0x78e3fc]
test eax, eax
js 0x48496d
xor edx, edx
shl eax, 0x10
inc edx
xor edi, edx
mov edx, dword [esp + 0x10]
sub edi, 0x7fe7fff1
push 4
pop ebx
mov dword [edx], edi
add edx, ebx
or eax, ecx
mov dword [edx], eax
push 4
pop ecx
add edx, ecx
mov dword [esp + 0x10], edx
jmp 0x484d78
test ecx, ecx
je 0x484984
mov edx, dword [esp + 0x10]
xor eax, eax
inc eax
xor edi, eax
sub edi, 0x7fe7ffee
mov dword [edx], edi
jmp 0x48495f
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x801c]
shl eax, 0x10
push 4
mov dword [ecx], eax
pop eax
add ecx, eax
mov dword [esp + 0x10], ecx
mov dword [ecx], edx
mov edx, ecx
jmp 0x48495f
cmp ebx, 0x2d
jne 0x4849db
push 2
pop eax
push 4
cmp ebp, eax
jb 0x484d30
cmp ebp, 3
mov ecx, 0x801f0000
mov eax, 0x801e0000
cmove eax, ecx
mov dword [edx], eax
pop ecx
add edx, ecx
xor eax, eax
lea ebp, [eax + 1]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ebp
jmp 0x484d78
cmp ebx, 0x5c
jne 0x484d2e
push ecx
xor eax, eax
mov edi, esi
inc eax
mov dword [esp + 0x5c], edi
push eax
mov eax, dword [ecx]
mov ebp, esi
mov ebx, esi
push dword [eax + 0x24]
lea eax, [esp + 0x30]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0xc8]
push eax
call fcn.0047ce95
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
test ecx, ecx
je 0x484b53
test byte [esp + 0x78], 2
je 0x48500e
mov esi, edi
cmp ebx, dword [esp + 0x14]
jb 0x484a43
push 0x5c
pop ebx
jmp 0x484d24
cmp dword [esp + 0x3c], 0
lea esi, [ebp + 1]
movzx ebx, byte [edi]
je 0x484d24
cmp ebx, 0xc0
jb 0x484d24
test bl, 0x20
jne 0x484a79
movzx eax, byte [esi]
and ebx, 0x1f
shl ebx, 6
and eax, 0x3f
or ebx, eax
inc esi
jmp 0x484d24
test bl, 0x10
jne 0x484aa0
movzx eax, byte [esi]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x484d24
test bl, 8
jne 0x484ad3
movzx eax, byte [esi]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x484d24
movzx ecx, byte [esi]
push 4
pop eax
push 0x3f
pop edx
and ecx, edx
test al, bl
jne 0x484b15
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, edx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, edx
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x484d24
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edx
or ebx, eax
add esi, 5
jmp 0x484d24
mov eax, esi
xor ebx, ebx
sub eax, ebx
je 0x484d19
push 4
pop ecx
sub eax, ecx
je case.0x484bbd.13
sub eax, 1
je 0x484d03
sub eax, 0xc
je case.0x484bbd.13
sub eax, 5
je case.0x484bbd.13
sub eax, 3
je 0x484cf2
sub eax, 1
je 0x484ceb
xor eax, eax
inc eax
cmp dword [esp + 0x20], eax
je 0x485028
lea eax, [esi - 6]
mov ebp, ebx
mov dword [esp + 0x20], ebp
cmp eax, 0xf
ja case.0x484bbd.13
movzx eax, byte [eax + 0x485119]
jmp dword [eax*4 + 0x485105]
mov edx, dword [esp + 0x10]
lea eax, [esi - 0x7fe80000]
mov dword [edx], eax
jmp 0x484cb9
mov eax, 0x20000
test dword [esp + 0x2c], eax
je case.0x484bbd.18
cmp esi, 7
je 0x484bf4
cmp esi, 9
je 0x484bf4
mov eax, 0x8018000f
cmp esi, 0xb
jne 0x484bf9
mov eax, 0x80180010
mov edx, dword [esp + 0x10]
mov dword [edx], eax
add edx, ecx
mov dword [esp + 0x10], edx
sub esi, 6
je 0x484c3a
sub esi, 1
je 0x484c3a
sub esi, 1
je 0x484c32
sub esi, 1
je 0x484c32
sub esi, 1
je 0x484c27
sub esi, 1
jne 0x484cbf
mov dword [edx], 0x90000
jmp 0x484cb9
mov dword [edx], 0x70000
jmp 0x484cb9
mov dword [edx], 0x3000d
jmp 0x484cb9
push dword [esp + 0xb8]
lea eax, [esp + 0x28]
mov dword [esp + 0x20], ebx
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x64], ebx
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00481e2c
add esp, 0x18
test eax, eax
je 0x484f38
cmp dword [esp + 0x9c], ebx
je 0x484c94
xor eax, eax
cmp esi, 0xf
sete al
lea esi, [eax + 0xf]
mov edx, dword [esp + 0x10]
lea eax, [esi - 0x7fe80000]
movzx ecx, word [esp + 0x1c]
push 4
shl ecx, 0x10
mov dword [edx], eax
pop eax
add edx, eax
movzx eax, word [esp + 0x5c]
or ecx, eax
push 4
mov dword [edx], ecx
pop ecx
add edx, ecx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xac]
dec eax
cmp esi, eax
jae 0x484d78
cmp byte [esi], 0x2d
jne 0x484d78
cmp byte [esi + 1], 0x5d
jne 0x48502f
jmp 0x484d78
xor eax, eax
inc eax
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0xac]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
jmp 0x484d78
mov esi, dword [esp + 0xac]
xor edi, edi
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push 8
pop ebx
jmp 0x484d31
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
xor edi, edi
mov edx, dword [esp + 0x10]
push 4
pop ecx
xor eax, eax
inc eax
cmp ebp, eax
jne 0x484d67
cmp ebx, dword [edx - 8]
jne 0x484d41
sub edx, ecx
jmp 0x484d60
jb 0x485039
test edi, edi
jne 0x484d5c
mov eax, 0x801f0000
cmp dword [edx - 4], eax
jne 0x484d5c
mov dword [edx - 4], 0x801e0000
mov dword [edx], ebx
add edx, ecx
xor ebp, ebp
jmp 0x4849ce
lea ebp, [edi + 2]
mov dword [edx], ebx
mov dword [esp + 0x20], ebp
jmp 0x484962
push 4
pop ecx
cmp esi, dword [esp + 0x14]
jae 0x485040
movzx ebx, byte [esi]
inc esi
cmp dword [esp + 0x3c], 0
mov eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xac], esi
je 0x484e9e
cmp ebx, 0xc0
jb 0x484e9e
test bl, 0x20
jne 0x484dc3
movzx eax, byte [esi]
and ebx, 0x1f
shl ebx, 6
and eax, 0x3f
or ebx, eax
inc esi
jmp 0x484e91
test bl, 0x10
jne 0x484dea
movzx eax, byte [esi]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x484e91
test bl, 8
jne 0x484e1a
movzx eax, byte [esi]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x484e91
push 0x3f
test cl, bl
movzx ecx, byte [esi]
pop edi
jne 0x484e56
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edi
and ecx, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, edi
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, edi
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x484e91
xor eax, eax
and ecx, edi
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edi
or ebx, eax
add esi, 5
mov dword [esp + 0x1c], ebx
mov eax, ebx
mov dword [esp + 0xac], esi
mov ecx, dword [esp + 0xb8]
cmp eax, 0x5d
mov eax, dword [esp + 0x48]
jne 0x484836
test eax, eax
jne 0x484836
inc eax
cmp ebp, eax
jne 0x484ec6
mov dword [edx - 4], 0x2d
push 4
pop eax
mov dword [edx], 0x800d0000
mov ebp, ecx
add edx, eax
mov dword [esp + 0x10], edx
jmp 0x482762
mov ecx, 0x8c
jmp 0x483810
dec esi
mov ecx, 0xb0
jmp 0x483810
push 0x76
jmp 0x48380f
push 0x7a
jmp 0x484f71
cmp edx, 0x80270000
je 0x484f10
cmp edx, 0x80280000
jne 0x482c86
mov ecx, 0xc6
jmp 0x483810
mov ecx, 0xbd
jmp 0x483810
mov ecx, 0xc3
jmp 0x483810
mov ecx, 0xa6
jmp 0x483810
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x24]
jmp 0x483810
push 0x73
jmp 0x48380f
mov ecx, 0xb3
jmp 0x483810
push 0x7c
jmp 0x48380f
push 0x73
jmp 0x484f71
mov ecx, 0xc2
dec esi
jmp 0x483810
push 0x6f
dec esi
jmp 0x48380f
mov ecx, 0xb8
jmp 0x483810
mov ecx, 0x8f
jmp 0x48500e
mov ecx, 0xa5
jmp 0x48500e
mov esi, dword [esp + 0xac]
push 0x79
jmp 0x48380f
mov ecx, 0x95
jmp 0x48500e
mov esi, dword [esp + 0xac]
mov ecx, 0xc5
jmp 0x483810
mov ecx, 0x8d
jmp 0x483810
mov ecx, 0xb5
mov esi, edx
jmp 0x483810
mov ecx, 0x8a
jmp 0x483810
mov ecx, 0x8b
jmp 0x483810
push 0x6d
jmp 0x484f71
mov al, byte [esi]
xor ecx, ecx
dec esi
cmp al, 0x3a
setne cl
add ecx, 0x70
jmp 0x483810
mov ecx, 0x82
jmp 0x483810
push 0x71
jmp 0x484f71
mov ecx, 0xab
mov esi, dword [esp + 0xac]
jmp 0x483810
mov esi, dword [esp + 0xac]
push 0x6b
jmp 0x484f71
mov esi, dword [esp + 0xac]
mov ecx, 0x96
jmp 0x483810
push 0x6c
jmp 0x484f71
push 0x6a
jmp 0x48380f
push 0x77
jmp 0x48380f
cmp dword [esp + 0x64], 0
je 0x48505f
mov ecx, 0xa0
jmp 0x483810
mov edi, dword [esp + 0x18]
push 4
pop ebx
push ebp
push edx
push dword [esp + 0x74]
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.00482463
add esp, 0x14
cmp dword [esp + 0xa0], 0
je 0x485094
mov dword [eax], 0x80190000
add eax, ebx
mov dword [eax], 0x80160000
jmp 0x4850ac
cmp dword [esp + 0xa4], 0
je 0x4850ae
mov dword [eax], 0x80190000
add eax, ebx
mov dword [eax], 0x80180005
add eax, ebx
cmp eax, dword [esp + 0x7c]
jb 0x4850be
mov ecx, 0xa3
jmp 0x483810
mov dword [eax], 0x80000000
test di, di
jne 0x48380d
xor eax, eax
jmp 0x48381f