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

Disassembly:
sub esp, 0xd4
mov eax, ecx
mov dword [esp + 0xac], edx
mov edx, dword [edx]
push ebx
mov dword [esp + 0xac], eax
mov eax, dword [eax]
mov ecx, eax
push ebp
push esi
xor esi, esi
shr ecx, 9
and ecx, 1
mov dword [esp + 0xa8], esi
mov dword [esp + 0x68], esi
xor ebp, ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x2c], eax
and eax, 1
mov dword [esp + 0xac], ecx
xor ecx, 1
push edi
mov esi, dword [esi]
xor edi, edi
shl eax, 0x1c
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x64], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x58], 0xfffffffe
mov dword [esp + 0x5c], 0xfffffffe
mov dword [esp + 0x54], 0xfffffffe
mov dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0xa4], eax
mov dword [esp + 0x98], edx
mov edi, dword [esp + 0x100]
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
mov eax, dword [edi + 0x10]
add eax, 0xffffff9c
add eax, ecx
mov ecx, dword [esp + 0x104]
test ecx, ecx
je 0x4a4b19
cmp edx, eax
ja 0x4a7ef0
mov eax, dword [esp + 0x98]
cmp edx, eax
cmovb edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x4a7ecd
sub edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0x14]
add edx, eax
mov dword [ecx], edx
test ebp, ebp
je 0x4a4af8
cmp ebp, dword [esp + 0xa8]
jbe 0x4a4b0c
mov esi, dword [esp + 0xa8]
sub eax, ebp
push eax
push ebp
push esi
call fcn.004aff90
mov edx, dword [esp + 0x20]
mov eax, esi
mov ecx, dword [esp + 0x110]
sub eax, ebp
add esp, 0xc
mov ebp, esi
mov esi, dword [esp + 0x10]
add edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x98], edx
jmp 0x4a4b22
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x98], edx
jmp 0x4a4b22
mov edx, dword [esp + 0x14]
mov dword [esp + 0x98], edx
jmp 0x4a4b22
cmp dword [edi + 0x24], eax
ja 0x4a7ef0
cmp dword [esp + 0x2c], 0
je 0x4a4b98
test ebx, ebx
je 0x4a4b98
cmp ebx, 0x5c
jne 0x4a4b49
cmp byte [esi + 1], 0x45
jne 0x4a4b49
inc esi
mov dword [esp + 0x2c], 0
mov ecx, edi
inc esi
jmp 0x4a4a42
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4a4b6e
test ecx, ecx
jne 0x4a4b66
push edi
mov edx, esi
mov ecx, eax
call fcn.004a4200
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x64], 0
test dword [esp + 0x30], 0x4000
je 0x4a7978
mov eax, dword [esp + 0x14]
mov edx, esi
push edi
mov ecx, eax
mov dword [esp + 0x68], eax
call fcn.004a41d0
add esp, 4
mov edx, eax
jmp case.0x4a4cf1.1
cmp ebx, 0x2a
je 0x4a4bf9
cmp ebx, 0x2b
je 0x4a4bf9
cmp ebx, 0x3f
je 0x4a4bf9
cmp ebx, 0x7b
jne 0x4a4bbc
lea ecx, [esi + 1]
call fcn.004a2b20
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x4a4bf9
mov ecx, dword [esp + 0x64]
xor ebp, ebp
test ecx, ecx
je 0x4a4bfe
mov edx, dword [esp + 0xac]
mov eax, edx
dec edx
mov dword [esp + 0xac], edx
test eax, eax
jg 0x4a4bfe
cmp dword [esp + 0x104], ebp
jne 0x4a4bf3
push edi
mov edx, esi
call fcn.004a4200
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x64], ebp
jmp 0x4a4bfe
mov ebp, 1
mov edx, dword [esp + 0x30]
mov ecx, edi
test dl, 8
je 0x4a4cb0
mov eax, dword [ecx + 0xc]
test byte [ebx + eax], 1
jne 0x4a73f7
cmp ebx, 0x23
jne 0x4a4cb0
inc esi
mov dword [esp + 0x10], esi
mov bl, byte [esi]
test bl, bl
je 0x4a4ca7
nop
mov edx, dword [ecx + 0x60]
mov eax, dword [ecx + 0x1c]
test edx, edx
je 0x4a4c60
cmp esi, eax
jae 0x4a4c84
lea edi, [ecx + 0x64]
mov ecx, esi
push 0
push edi
push eax
call fcn.004ae3f0
mov esi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x4a4c91
mov ecx, dword [esp + 0x100]
jmp 0x4a4c84
mov ecx, dword [ecx + 0x64]
sub eax, ecx
cmp esi, eax
ja 0x4a4c57
mov edx, dword [esp + 0x100]
cmp bl, byte [edx + 0x68]
jne 0x4a4c82
cmp ecx, 1
je 0x4a4c93
mov al, byte [esi + 1]
cmp al, byte [edx + 0x69]
je 0x4a4c93
mov ecx, edx
inc esi
mov dword [esp + 0x10], esi
mov bl, byte [esi]
test bl, bl
jne 0x4a4c30
jmp 0x4a4ca3
mov ecx, dword [edi]
dec esi
add esi, ecx
mov dword [esp + 0x10], esi
cmp byte [esi], 0
jne 0x4a73f0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x100]
xor ebx, ebx
test edx, 0x4000
je 0x4a4cdd
test ebp, ebp
jne 0x4a4cdd
mov eax, dword [esp + 0x14]
mov edx, esi
push ecx
mov ecx, eax
mov dword [esp + 0x68], eax
call fcn.004a41d0
mov esi, dword [esp + 0x14]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
jmp 0x4a4ce1
mov edx, dword [esp + 0x14]
cmp ebx, 0x7c
ja case.0x4a4cf1.1
movzx eax, byte [ebx + 0x4a7f48]
jmp dword [eax*4 + 0x4a7f14]
mov ecx, dword [esp + 0x100]
xor ebp, ebp
test byte [esp + 0x30], 2
mov dword [esp + 0x18], ebp
je 0x4a4d31
mov ebx, dword [esp + 0x3c]
mov eax, 0xffffffff
cmp ebx, 0xfffffffe
mov byte [edx], 0x1a
mov esi, dword [esp + 0x10]
cmove ebx, eax
inc edx
mov dword [esp + 0x3c], ebx
inc esi
mov dword [esp + 0x14], edx
jmp 0x4a4a42
mov byte [edx], 0x19
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc esi
jmp 0x4a4a42
mov ecx, dword [esp + 0x100]
xor ebp, ebp
test byte [esp + 0x30], 2
mov dword [esp + 0x18], ebp
setne al
add al, 0x1b
mov byte [edx], al
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc esi
jmp 0x4a4a42
mov edi, dword [esp + 0x3c]
mov eax, 0xffffffff
mov ecx, dword [esp + 0x100]
cmp edi, 0xfffffffe
mov ebp, edx
cmove edi, eax
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
shr eax, 2
and al, 1
mov dword [esp + 0x3c], edi
or al, 0xc
mov dword [esp + 0x5c], edi
mov byte [edx], al
lea edx, [ebp + 1]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc esi
jmp 0x4a4a42
mov edi, dword [esp + 0x100]
test dword [edi + 0x4c], 0x2000000
je case.0x4a4cf1.1
mov eax, dword [esp + 0xec]
mov dword [eax], 0x40
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov al, byte [esi + 1]
mov ebp, edx
mov dword [esp + 0x18], ebp
cmp al, 0x3a
je 0x4a4e01
cmp al, 0x2e
je 0x4a4e01
cmp al, 0x3d
jne 0x4a4e18
lea edx, [esp + 0x70]
mov ecx, esi
call fcn.004a3fa0
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x4a7ae0
xor edx, edx
mov dword [esp + 0x34], edx
nop
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov byte [esp + 0x63], al
movzx ebx, al
cmp al, 0x5c
jne 0x4a4e60
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x4a4e3f
mov esi, eax
jmp 0x4a4e20
push 3
push 0x4dd0b8
push eax
call fcn.004b7e30
mov esi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x4a4e6f
mov edx, dword [esp + 0x34]
add esi, 3
jmp 0x4a4e20
test edx, edx
jne 0x4a4ed1
cmp al, 0x5e
jne 0x4a4ed1
mov edx, 1
jmp 0x4a4e1a
mov al, byte [esp + 0x63]
mov ecx, dword [esp + 0x100]
xor edx, edx
xorps xmm0, xmm0
xor edi, edi
mov dword [esp + 0x58], edx
xor ebp, ebp
movups xmmword [esp + 0x74], xmm0
movups xmmword [esp + 0x84], xmm0
test al, al
je 0x4a55a1
mov edx, dword [esp + 0x2c]
mov eax, ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x38], ebp
test edx, edx
je 0x4a4f20
cmp eax, 0x5c
jne 0x4a52e2
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x4a52e2
xor edx, edx
mov esi, eax
mov dword [esp + 0x2c], edx
jmp 0x4a514d
cmp al, 0x5d
jne 0x4a4e73
mov ecx, dword [esp + 0x100]
test dword [ecx + 0x4c], 0x2000000
je 0x4a4e7a
mov edi, dword [esp + 0x3c]
test edx, edx
mov edx, 0xd
mov eax, 0x97
cmovne eax, edx
mov edx, dword [esp + 0x14]
mov byte [edx], al
inc edx
mov esi, dword [esp + 0x10]
cmp edi, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x14], edx
cmove edi, eax
inc esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x5c], edi
jmp 0x4a4a42
cmp eax, 0x5b
jne 0x4a5083
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x4a4f3c
cmp al, 0x2e
je 0x4a4f3c
cmp al, 0x3d
jne 0x4a52e2
lea edx, [esp + 0x70]
mov ecx, esi
call fcn.004a3fa0
test eax, eax
je 0x4a50bd
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x100]
cmp byte [esi + 1], 0x3a
mov edi, dword [edi + 8]
jne 0x4a7a37
lea ecx, [esi + 2]
mov dword [esp + 0x10], ecx
mov bl, byte [ecx]
cmp bl, 0x5e
jne 0x4a4f82
inc ecx
mov dword [esp + 0x58], 1
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x70]
sub edx, ecx
call fcn.004a4010
test eax, eax
js 0x4a7a10
test byte [esp + 0x30], 1
je 0x4a4fa4
xor ecx, ecx
cmp eax, 2
cmovle eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x4d42e0]
mov esi, dword [ecx*4 + 0x4d42e8]
movups xmm0, xmmword [eax + edi]
movups xmmword [esp + 0xc0], xmm0
movups xmm0, xmmword [eax + edi + 0x10]
mov eax, dword [ecx*4 + 0x4d42e4]
movups xmmword [esp + 0xd0], xmm0
test eax, eax
js 0x4a5006
xor ecx, ecx
lea edx, [edi + eax]
test esi, esi
js 0x4a4ff4
mov al, byte [edx + ecx]
or byte [esp + ecx + 0xc0], al
inc ecx
cmp ecx, 0x20
jl 0x4a4fe2
jmp 0x4a5006
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0xc0], al
inc ecx
cmp ecx, 0x20
jl 0x4a4ff4
mov eax, esi
neg eax
test esi, esi
cmovns eax, esi
cmp eax, 1
jne 0x4a501e
and byte [esp + 0xc1], 0xc3
jmp 0x4a502b
cmp eax, 2
jne 0x4a502b
and byte [esp + 0xcb], 0x7f
xor ecx, ecx
cmp bl, 0x5e
jne 0x4a5060
mov al, byte [esp + ecx + 0xc0]
not al
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a5032
mov esi, dword [esp + 0x70]
mov edi, 1
inc esi
lea ebp, [edi + 1]
jmp 0x4a5142
mov al, byte [esp + ecx + 0xc0]
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a5060
mov esi, dword [esp + 0x70]
mov edi, 1
inc esi
lea ebp, [edi + 1]
jmp 0x4a5142
cmp eax, 0x5c
jne 0x4a52e2
mov esi, dword [esp + 0xec]
mov edx, esi
push 1
push dword [esp + 0x34]
push dword [ecx + 0x38]
lea ecx, [esp + 0x1c]
call fcn.004a2b90
add esp, 0xc
mov ebx, eax
cmp dword [esi], 0
jne 0x4a7a1d
cmp ebx, 0xfffffffb
jne 0x4a50cd
lea ebx, [eax + 0xd]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x100]
jmp 0x4a52de
cmp ebx, 0xfffffff4
je 0x4a7a7a
cmp ebx, 0xffffffe6
jne 0x4a50fb
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x4a50f0
cmp byte [esi + 2], 0x45
jne 0x4a50f0
add esi, 2
jmp 0x4a5142
mov edx, 1
mov dword [esp + 0x2c], edx
jmp 0x4a5146
cmp ebx, 0xffffffe7
je 0x4a513e
test ebx, ebx
jns 0x4a50bd
mov ecx, dword [esp + 0x100]
mov eax, 0xfffffffa
sub eax, ebx
inc edi
add ebp, 2
mov edx, dword [ecx + 8]
cmp eax, 0xf
ja case.0x4a5122.6
jmp dword [eax*4 + 0x4a7fc8]
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a5130
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x100]
inc esi
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
mov eax, ebx
test ebx, ebx
je 0x4a559b
cmp ebx, 0x5d
jne 0x4a4ea2
test edx, edx
jne 0x4a4ea2
mov edx, dword [esp + 0x58]
jmp 0x4a55a9
mov dword [esp + 0x58], 1
xor ecx, ecx
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a5183
jmp 0x4a513e
xor ecx, ecx
nop word [eax + eax]
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a51a0
jmp 0x4a513e
mov dword [esp + 0x58], 1
xor ecx, ecx
nop dword [eax]
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a51c0
jmp 0x4a513e
movzx eax, byte [edx]
mov ecx, 2
or byte [esp + 0x74], al
movzx eax, byte [edx + 1]
and al, 0xf7
or byte [esp + 0x75], al
nop
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x20
jl 0x4a51f0
jmp 0x4a513e
lea eax, [esp + 0x74]
mov dword [esp + 0x58], 1
xor esi, esi
sub edx, eax
lea ecx, [esp + 0x74]
add ecx, esi
inc esi
mov al, byte [edx + ecx]
not al
or byte [ecx], al
cmp esi, 0x20
jl 0x4a5212
or byte [esp + 0x75], 8
jmp 0x4a513e
or byte [esp + 0x75], 2
or byte [esp + 0x78], 1
or byte [esp + 0x88], 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
jmp 0x4a514d
xor edx, edx
mov eax, edx
mov ecx, 0xff
sub eax, 1
je 0x4a526d
sub eax, 3
je 0x4a5266
sub eax, 0x10
jne 0x4a5272
mov ecx, 0xfe
jmp 0x4a5272
mov ecx, 0xfd
or byte [esp + edx + 0x74], cl
inc edx
cmp edx, 0x20
jl 0x4a5250
jmp 0x4a513e
or byte [esp + 0x75], 0x3c
or byte [esp + 0x84], 0x20
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
jmp 0x4a514d
xor eax, eax
nop dword [eax]
mov ecx, eax
mov edx, 0xff
sub ecx, 1
je 0x4a52b8
sub ecx, 0xf
jne 0x4a52bd
mov edx, 0xdf
jmp 0x4a52bd
mov edx, 0xc3
or byte [esp + eax + 0x74], dl
inc eax
cmp eax, 0x20
jl 0x4a52a0
jmp 0x4a513e
test byte [esp + 0x30], 0x40
jne 0x4a7a5a
mov esi, dword [esp + 0x10]
movzx ebx, byte [esi]
mov edx, dword [esp + 0x2c]
cmp byte [esi + 1], 0x5c
jne 0x4a530b
nop dword [eax + eax]
cmp byte [esi + 2], 0x45
lea eax, [esi + 2]
jne 0x4a5307
mov esi, eax
xor edx, edx
mov dword [esp + 0x10], esi
cmp byte [esi + 1], 0x5c
je 0x4a52f0
mov dword [esp + 0x2c], edx
mov ebp, esi
cmp ebx, 0xd
je 0x4a5317
cmp ebx, 0xa
jne 0x4a531e
or dword [ecx + 0x50], 0x800
test edx, edx
jne 0x4a54bc
cmp byte [esi + 1], 0x2d
jne 0x4a54bc
lea esi, [ebp + 2]
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
mov dword [esp + 0x1c], esi
jne 0x4a5397
cmp byte [esi + 1], 0x45
jne 0x4a5358
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], esi
cmp byte [esi], 0x5c
je 0x4a5340
jmp 0x4a5397
cmp byte [esi], 0x5c
jne 0x4a5397
nop dword [eax]
cmp byte [esi + 1], 0x51
jne 0x4a5397
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], esi
cmp byte [esi], 0x5c
jne 0x4a538e
cmp byte [esi + 1], 0x45
jne 0x4a538e
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], esi
cmp byte [esi], 0x5c
je 0x4a5360
jmp 0x4a5397
mov edx, 1
mov dword [esp + 0x2c], edx
mov al, byte [esi]
test al, al
je 0x4a54b6
test edx, edx
jne 0x4a53ad
cmp al, 0x5d
je 0x4a54b6
movzx edi, al
test edx, edx
jne 0x4a5400
cmp edi, 0x5c
jne 0x4a5400
mov esi, dword [esp + 0xec]
mov edx, esi
push 1
push dword [esp + 0x34]
push dword [ecx + 0x38]
lea ecx, [esp + 0x1c]
call fcn.004a2b90
add esp, 0xc
mov edi, eax
cmp dword [esi], 0
jne 0x4a7a1d
test edi, edi
jns 0x4a53f4
cmp edi, 0xfffffffb
jne 0x4a54b6
mov edi, 8
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
cmp edi, ebx
jl 0x4a7a9a
je 0x4a54bc
cmp edi, 0xd
je 0x4a5418
cmp edi, 0xa
jne 0x4a5428
mov ecx, dword [esp + 0x100]
or dword [ecx + 0x50], 0x800
jmp 0x4a542f
mov ecx, dword [esp + 0x100]
cmp dword [esp + 0x104], 0
mov ebp, 2
mov dword [esp + 0x38], ebp
mov dword [esp + 0x48], 1
jne 0x4a552a
cmp ebx, edi
jg 0x4a5534
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x100]
and ebp, 1
mov edx, ebx
test edx, edx
jns 0x4a546d
add edx, 7
sar edx, 3
movzx ecx, byte [esp + edx + 0x74]
mov eax, ebx
and eax, 7
bts ecx, eax
mov byte [esp + edx + 0x74], cl
test ebp, ebp
je 0x4a54a0
mov eax, dword [esi + 4]
movzx edx, byte [eax + ebx]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [esp + ecx + 0x74]
bts eax, edx
mov byte [esp + ecx + 0x74], al
inc ebx
cmp ebx, edi
jle 0x4a5464
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
jmp 0x4a5142
mov esi, ebp
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x38]
cmp eax, 2
lea ebp, [eax + 1]
cmovge ebp, dword [esp + 0x48]
cmp ebp, 1
jne 0x4a54d6
cmp byte [esi + 1], 0x5d
je 0x4a553d
mov edi, 1
mov edx, ebx
test edx, edx
jns 0x4a54e4
add edx, 7
sar edx, 3
movzx ecx, byte [esp + edx + 0x74]
mov eax, ebx
and eax, 7
bts ecx, eax
test byte [esp + 0x30], 1
mov byte [esp + edx + 0x74], cl
je 0x4a5142
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 4]
movzx edx, byte [eax + ebx]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [esp + ecx + 0x74]
bts eax, edx
mov byte [esp + ecx + 0x74], al
jmp 0x4a5142
mov edi, 1
jmp 0x4a514d
mov edi, dword [esp + 0x48]
jmp 0x4a514d
inc esi
cmp dword [esp + 0x34], 0
mov dword [esp + 0x10], esi
je 0x4a7978
mov edi, dword [esp + 0x3c]
mov eax, 0xffffffff
mov ecx, dword [esp + 0x14]
cmp edi, 0xfffffffe
cmove edi, eax
test byte [esp + 0x30], 1
mov dword [esp + 0x3c], edi
setne al
mov dword [esp + 0x5c], edi
add al, 0x1f
lea edx, [ecx + 2]
mov byte [ecx], al
mov byte [ecx + 1], bl
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
inc esi
mov ecx, dword [esp + 0x100]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x58], eax
jmp 0x4a4a42
mov edx, dword [esp + 0x58]
mov ebx, eax
test ebx, ebx
je 0x4a7abd
mov ebx, dword [esp + 0x3c]
mov eax, 0xffffffff
mov ecx, dword [esp + 0x34]
cmp ebx, 0xfffffffe
cmove ebx, eax
cmp ecx, edx
mov edx, dword [esp + 0x14]
setne al
mov dword [esp + 0x3c], ebx
add al, 0x6a
mov dword [esp + 0x5c], ebx
cmp dword [esp + 0x104], 0
mov byte [edx], al
jne 0x4a5600
test ecx, ecx
je 0x4a55eb
xor ecx, ecx
not byte [esp + ecx + 0x74]
inc ecx
cmp ecx, 0x20
jl 0x4a55e1
movups xmm0, xmmword [esp + 0x74]
movups xmmword [edx + 1], xmm0
movups xmm0, xmmword [esp + 0x84]
movups xmmword [edx + 0x11], xmm0
add edx, 0x21
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
inc esi
mov ecx, dword [esp + 0x100]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x58], eax
jmp 0x4a4a42
test ebp, ebp
je case.0x4a4cf1.1
mov ebp, dword [esp + 0xec]
lea eax, [esp + 0x28]
push ebp
push eax
lea ecx, [esi + 1]
lea edx, [esp + 0x54]
call fcn.004a3190
add esp, 8
mov esi, eax
cmp dword [ebp], 0
mov dword [esp + 0x10], esi
jne 0x4a7efd
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
jmp 0x4a5689
xor edi, edi
or ebx, 0xffffffff
jmp 0x4a567a
mov edi, 1
or ebx, 0xffffffff
jmp 0x4a567a
xor edi, edi
mov ebx, 1
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4a7b10
test edi, edi
jne 0x4a56a9
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
xor edx, edx
mov eax, 0x20000000
cmp edi, ebx
cmove eax, edx
mov edx, ecx
mov dword [esp + 0x40], edx
xor ebp, ebp
mov cl, byte [esi + 1]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ebp
cmp cl, 0x2b
jne 0x4a56e1
mov dword [esp + 0x20], ebp
inc esi
mov ebp, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], ebp
jmp 0x4a5703
cmp cl, 0x3f
jne 0x4a56f8
mov ecx, dword [esp + 0xb4]
inc esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], esi
jmp 0x4a5703
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x6f
jne 0x4a579c
mov esi, eax
push 3
push esi
lea eax, [esi + 3]
push eax
call fcn.004aff90
add dword [esp + 0x20], 6
add esp, 0xc
cmp dword [esp + 0x104], 0
mov word [esi], 0x7b
mov byte [esi + 2], 6
mov word [esi + 6], 0x72
mov byte [esi + 8], 6
mov dword [esp + 0x6c], 9
jne 0x4a5788
mov ebx, dword [esp + 0x100]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x24]
add eax, 2
cmp edx, eax
jb 0x4a5788
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
shl eax, 8
or ecx, eax
mov eax, esi
sub eax, dword [ebx + 0x14]
inc eax
cmp ecx, eax
jne 0x4a5788
lea eax, [ecx + 3]
shr eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [ebx + 0x24]
mov byte [eax - 1], cl
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x4c]
mov cl, byte [eax]
cmp cl, 0x1d
je 0x4a5f9f
cmp cl, 0x1e
je 0x4a5f9f
cmp cl, 0x1f
je 0x4a5f3e
cmp cl, 0x20
je 0x4a5f3e
cmp cl, 0x17
jae 0x4a57db
movzx ecx, cl
mov dword [esp + 0x24], 0x34
mov dword [esp + 0x1c], ecx
jmp 0x4a5f5a
cmp cl, 0x6a
je 0x4a5e88
cmp cl, 0x6b
je 0x4a5e88
cmp cl, 0x6d
je 0x4a5e88
cmp cl, 0x6e
je 0x4a5e88
lea eax, [ecx - 0x77]
cmp al, 0xa
ja 0x4a5e5c
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], 0
cmp cl, 0x81
jne 0x4a583b
mov eax, dword [esp + 0x18]
cmp byte [eax + 3], 0x8b
je 0x4a6203
jmp 0x4a585e
cmp cl, 0x7b
jae 0x4a585a
test edi, edi
jg 0x4a6203
test ebx, ebx
js 0x4a5851
cmp ebx, 1
jle 0x4a585a
mov ebx, 1
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x18]
test edi, edi
jne 0x4a595a
lea esi, [eax + 1]
push dword [esp + 0x44]
push dword [esp + 0x104]
push edi
cmp ebx, 1
jg 0x4a58f2
mov ecx, dword [esp + 0x20]
lea edx, [edi + 1]
mov byte [ecx], 0
mov ecx, eax
call fcn.004a4060
mov ebx, dword [esp + 0x24]
add esp, 0xc
push dword [esp + 0x1c]
push ebx
push esi
call fcn.004aff90
mov edx, dword [esp + 0x20]
add esp, 0xc
inc edx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], edi
jne 0x4a58d0
mov ecx, dword [esp + 0x100]
xor ebp, ebp
mov eax, dword [esp + 0x38]
mov byte [ebx], 0x9b
mov esi, dword [esp + 0x10]
or dword [ecx + 0x54], eax
inc esi
mov dword [esp + 0x18], ebp
jmp 0x4a4a42
mov al, byte [esp + 0x20]
sub al, 0x74
mov dword [esp + 0x48], ebx
mov byte [ebx], al
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
dec ebx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10]
jmp 0x4a5ac9
mov edi, dword [esp + 0x20]
mov edx, 4
mov ecx, eax
mov byte [edi], 0
call fcn.004a4060
mov ebx, dword [esp + 0x24]
add esp, 0xc
push dword [esp + 0x1c]
lea eax, [ebx + 4]
push ebx
push eax
call fcn.004aff90
mov al, byte [esp + 0x2c]
mov ebp, esi
sub al, 0x74
add edi, 4
mov byte [ebx], al
add esp, 0xc
mov eax, ebp
mov dword [esp + 0x14], edi
mov byte [ebp], 0x7d
inc ebp
mov dword [esp + 0x24], ebp
mov byte [eax + 2], 0
add eax, 3
mov byte [ebp], 0
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
dec ebx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
jmp 0x4a5ac9
cmp edi, 1
jle 0x4a5ac3
cmp dword [esp + 0x104], 0
je 0x4a59c4
mov eax, dword [esp + 0x6c]
lea ecx, [edi - 1]
movd xmm1, ecx
mov ebp, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
imul ebp, eax
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x4dd1e8]
ja 0x4a7ecd
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, ebp
jl 0x4a7ecd
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x104]
mov dword [ecx], eax
jmp 0x4a5ac3
cmp dword [esp + 0xa0], 0
je 0x4a59dd
mov ecx, dword [esp + 0x54]
test ecx, ecx
cmovs ecx, dword [esp + 0x3c]
mov dword [esp + 0x54], ecx
mov ebp, 1
cmp edi, ebp
jle 0x4a5ac3
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x100]
mov esi, dword [edx + 0x24]
push ebx
push eax
push dword [esp + 0x1c]
call fcn.004b19e0
mov edx, dword [esp + 0x10c]
add esp, 0xc
mov ecx, dword [esp + 0x44]
add ecx, 0xffffff9c
mov edi, dword [edx + 0x10]
mov eax, edi
sub eax, esi
add eax, dword [edx + 0x34]
add eax, ecx
cmp dword [edx + 0x24], eax
jbe 0x4a5a6a
mov ecx, edx
call fcn.004a2aa0
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x4a7a1d
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + 0x10]
mov eax, ecx
sub eax, edi
add dword [esp + 0x44], eax
mov eax, ecx
sub eax, edi
mov edi, ecx
add esi, eax
mov eax, dword [esp + 0x44]
sub ecx, esi
add eax, 0xffffff9c
add ecx, dword [edx + 0x34]
add eax, ecx
cmp dword [edx + 0x24], eax
ja 0x4a5a25
mov edi, dword [esp + 0x44]
cmp edi, esi
jae 0x4a5a9e
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edx + 0x24]
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edi + 1]
add edi, 2
mov eax, dword [edx + 0x24]
add cl, bl
mov byte [eax + 1], cl
add dword [edx + 0x24], 2
cmp edi, esi
jb 0x4a5a72
add dword [esp + 0x14], ebx
inc ebp
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], esi
cmp ebp, edi
jl 0x4a59f5
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
test ebx, ebx
jle 0x4a5acf
sub ebx, edi
mov dword [esp + 0x28], ebx
test ebx, ebx
js 0x4a5d01
mov ebp, dword [esp + 0x104]
test ebp, ebp
je 0x4a5b32
test ebx, ebx
jle 0x4a5b32
mov eax, dword [esp + 0x6c]
add eax, 7
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, ebx
mulsd xmm1, xmm0
sub ecx, 6
comisd xmm1, xmmword [0x4dd1e8]
ja 0x4a7ecd
mov edi, dword [ebp]
mov eax, 0x7fffffeb
sub eax, edi
cmp eax, ecx
jl 0x4a7ecd
lea eax, [edi + ecx]
mov dword [ebp], eax
jmp 0x4a5cb4
lea ebp, [ebx - 1]
mov dword [esp + 0x48], ebp
test ebp, ebp
js 0x4a5cb4
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
sub dl, 0x74
mov dword [esp + 0x20], edx
mov esi, dword [eax + 0x24]
mov eax, dword [esp + 0x1c]
nop
mov ecx, dword [esp + 0x24]
mov edi, esi
mov byte [ebx], dl
inc ebx
mov dword [esp + 0x14], ebx
test ebp, ebp
je 0x4a5b9a
lea edx, [ebx + 1]
mov byte [ebx], 0x7d
mov eax, edx
mov dword [esp + 0x24], edx
sub eax, ecx
lea ebx, [edx + 2]
neg ecx
mov dword [esp + 0x14], ebx
sbb ecx, ecx
and ecx, eax
mov eax, ecx
mov byte [edx + 1], cl
sar eax, 8
mov byte [edx], al
mov eax, dword [esp + 0x1c]
push eax
push dword [esp + 0x1c]
push ebx
call fcn.004b19e0
mov eax, dword [esp + 0x10c]
add esp, 0xc
mov ecx, dword [esp + 0x44]
add ecx, 0xffffff9c
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x10]
mov eax, ebx
sub eax, esi
mov esi, dword [esp + 0x100]
add eax, dword [esi + 0x34]
add eax, ecx
cmp edx, eax
jbe 0x4a5c10
mov ecx, esi
call fcn.004a2aa0
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x4a7a1d
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov edx, dword [esi + 0x24]
sub eax, ebx
add dword [esp + 0x44], eax
mov eax, ecx
sub eax, ebx
mov ebx, ecx
add edi, eax
mov eax, dword [esp + 0x44]
sub ecx, edi
add eax, 0xffffff9c
add ecx, dword [esi + 0x34]
add eax, ecx
cmp edx, eax
ja 0x4a5bd0
mov eax, dword [esp + 0x44]
mov esi, edx
cmp eax, edi
jae 0x4a5c89
mov ecx, 1
test ebp, ebp
mov ebp, dword [esp + 0x100]
mov esi, 4
mov edx, ecx
mov ebx, ecx
cmovne edx, esi
cmovne ebx, esi
nop word [eax + eax]
movzx ecx, byte [eax]
movzx eax, byte [eax + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x24]
add ecx, dword [esp + 0x1c]
add ecx, edx
sar ecx, 8
mov byte [eax], cl
mov eax, dword [esp + 0x44]
mov cl, byte [esp + 0x1c]
add cl, bl
add cl, byte [eax + 1]
mov eax, dword [ebp + 0x24]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x44]
mov esi, dword [ebp + 0x24]
add eax, 2
add esi, 2
mov dword [esp + 0x44], eax
mov dword [ebp + 0x24], esi
cmp eax, edi
jb 0x4a5c40
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add ebx, eax
mov edx, dword [esp + 0x20]
sub ebp, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x48], ebp
jns 0x4a5b60
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
test edi, edi
je 0x4a6064
mov ebx, ebp
mov edx, ebp
sub ebx, edi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov byte [ebp], 0x72
sub edi, ecx
mov byte [ebp + 2], bl
neg ecx
mov eax, ebx
sbb ecx, ecx
sar eax, 8
mov byte [ebp + 1], al
add ebp, 3
mov byte [edx + 1], al
mov byte [edx + 2], bl
and edi, ecx
jne 0x4a5cc4
jmp 0x4a6058
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx - 2]
lea edi, [edx - 3]
movzx eax, byte [edi + 2]
mov ebp, edi
shl ecx, 8
or ecx, eax
sub ebp, ecx
mov al, byte [ebp]
cmp al, 0x7b
je 0x4a5d24
cmp al, 0x7c
jne 0x4a5d32
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x4a5d36
mov byte [ebp], 0x7d
jmp 0x4a5d46
mov ebx, dword [esp + 0x34]
cmp al, 0x7b
je 0x4a5e4b
cmp al, 0x7c
je 0x4a5e4b
cmp dword [esp + 0x104], 0
jne 0x4a5d8d
mov esi, ebp
push dword [esp + 0x100]
mov edx, edi
mov ecx, esi
push 0
call fcn.004a3bf0
add esp, 8
test eax, eax
jne 0x4a5d81
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x71
je 0x4a5d52
jmp 0x4a5d89
mov al, byte [ebp]
add al, 5
mov byte [ebp], al
mov edx, dword [esp + 0x14]
test ebx, ebx
je 0x4a5e25
mov al, byte [ebp]
cmp al, 0x81
je 0x4a5daa
cmp al, 0x86
je 0x4a5daa
inc al
mov byte [ebp], al
mov byte [edi], 0x75
jmp 0x4a5e02
push dword [esp + 0x44]
mov ebx, edx
mov byte [edx], 0
push dword [esp + 0x104]
mov edx, 3
mov ecx, ebp
push 0
sub ebx, ebp
call fcn.004a4060
add esp, 0xc
lea eax, [ebp + 3]
push ebx
push ebp
push eax
call fcn.004aff90
mov edx, dword [esp + 0x20]
add ebx, 3
mov byte [ebp], 0x7e
mov eax, ebx
sar eax, 8
add esp, 0xc
mov byte [edx + 3], 0x75
mov byte [edx + 4], al
mov byte [edx + 5], bl
add edx, 6
mov dword [esp + 0x14], edx
mov byte [ebp + 1], al
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a5e0d
mov byte [eax], 0x8e
cmp dword [esp + 0x4c], 2
mov esi, dword [esp + 0x10]
jl 0x4a6207
mov ebp, dword [esp + 0x14]
jmp 0x4a6060
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov ecx, dword [esp + 0x100]
add al, 0x73
mov byte [edi], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
or dword [ecx + 0x54], eax
inc esi
mov dword [esp + 0x18], ebp
jmp 0x4a4a42
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
add al, 0x73
mov byte [edi], al
jmp 0x4a605c
cmp cl, 0x97
je 0x4a6203
mov eax, dword [esp + 0xec]
mov dword [eax], 0xb
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
test ebx, ebx
jne 0x4a5eac
mov ecx, dword [esp + 0x100]
mov edx, eax
mov eax, dword [esp + 0x38]
xor ebp, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
or dword [ecx + 0x54], eax
inc esi
jmp 0x4a4a42
test edi, edi
jne 0x4a5ede
cmp ebx, 0xffffffff
jne 0x4a5ec7
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add al, 0x62
mov byte [ebp], al
jmp 0x4a6057
cmp ebx, 1
jne 0x4a5efa
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add al, 0x66
mov byte [ebp], al
jmp 0x4a6057
cmp edi, 1
jne 0x4a5efa
cmp ebx, 0xffffffff
jne 0x4a5efa
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add al, 0x64
mov byte [ebp], al
jmp 0x4a6057
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x20]
add al, 0x68
mov byte [ecx], al
lea ebp, [ecx + 5]
mov eax, dword [esp + 0x4c]
sar eax, 8
mov byte [ecx + 1], al
movzx eax, byte [esp + 0x4c]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
cmove eax, edx
mov dword [esp + 0x28], eax
sar eax, 8
mov byte [ecx + 3], al
movzx eax, byte [esp + 0x28]
mov byte [ecx + 4], al
jmp 0x4a6058
movzx eax, byte [eax + 1]
cmp cl, 0x1f
mov edx, 0x27
mov dword [esp + 0x1c], eax
mov ecx, 0x1a
cmove edx, ecx
mov dword [esp + 0x24], edx
test ebp, ebp
jne 0x4a5fe3
test ebx, ebx
jns 0x4a5fe3
push dword [esp + 0x100]
push dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
lea eax, [esi + 1]
push eax
xor edx, edx
call fcn.004a4230
mov edi, dword [esp + 0x58]
add esp, 0xc
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x4a5fe3
xor ecx, ecx
mov dword [esp + 0x34], 1
jmp 0x4a5fe7
xor eax, eax
mov edx, 0xd
cmp cl, 0x1d
cmove edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], edx
movzx ecx, byte [eax - 1]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1c], ecx
cmp edi, 1
jle 0x4a5fd8
mov edx, dword [eax + 0x54]
or edx, ecx
or edx, dword [esp + 0xa4]
mov dword [esp + 0x54], edx
test ebp, ebp
jne 0x4a5fe3
test ebx, ebx
jns 0x4a5fe3
push eax
jmp 0x4a5f6d
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov al, byte [ebp]
cmp al, 0x10
je 0x4a600b
cmp al, 0xf
je 0x4a600b
mov dword [esp + 0x50], 0xffffffff
lea edx, [ebp + 1]
mov dword [esp + 0x20], 0xffffffff
jmp 0x4a601e
movzx eax, byte [ebp + 1]
lea edx, [ebp + 1]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp + 2]
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x4a6203
mov eax, dword [esp + 0x24]
add ecx, eax
test edi, edi
jne 0x4a60c2
mov eax, dword [esp + 0x18]
mov ebp, edx
cmp ebx, 0xffffffff
jne 0x4a6097
add cl, 0x21
mov byte [eax], cl
mov ebx, dword [esp + 0x1c]
mov byte [ebp], bl
inc ebp
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
je 0x4a6203
mov al, byte [edx]
cmp al, 0x5d
jne 0x4a61bf
mov al, byte [edx + 3]
cmp al, 0x10
je 0x4a608d
cmp al, 0xf
mov eax, 4
jne 0x4a61d1
mov eax, 6
jmp 0x4a61d1
cmp ebx, 1
mov ebx, dword [esp + 0x1c]
jne 0x4a60a7
add cl, 0x25
mov byte [eax], cl
jmp 0x4a6054
add cl, 0x27
mov byte [eax], cl
mov eax, dword [esp + 0x28]
sar eax, 8
mov byte [ebp], al
mov al, byte [esp + 0x28]
mov byte [ebp + 1], al
add ebp, 2
jmp 0x4a6054
cmp edi, 1
jne 0x4a610d
cmp ebx, 0xffffffff
jne 0x4a60dc
mov eax, dword [esp + 0x18]
add cl, 0x23
mov ebp, edx
mov byte [eax], cl
jmp 0x4a6050
mov edx, ebp
mov dword [esp + 0x14], edx
cmp ebx, 1
je 0x4a6207
add cl, 0x27
mov byte [ebp], cl
mov eax, dword [esp + 0x28]
dec eax
sar eax, 8
mov byte [ebp + 1], al
mov al, byte [esp + 0x28]
dec al
mov byte [ebp + 2], al
add ebp, 3
jmp 0x4a6050
mov ebp, dword [esp + 0x18]
add al, 0x29
mov byte [ebp], al
lea ebp, [edx + 2]
mov eax, dword [esp + 0x4c]
sar eax, 8
mov byte [edx], al
mov al, byte [esp + 0x4c]
mov byte [edx + 1], al
mov eax, dword [esp + 0x28]
test eax, eax
jns 0x4a615c
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov byte [ebp], bl
inc ebp
test eax, eax
js 0x4a6150
mov edx, dword [esp + 0x50]
mov byte [ebp], al
lea eax, [ebp + 1]
mov byte [eax], dl
lea ebp, [eax + 1]
add cl, 0x21
mov byte [ebp], cl
inc ebp
jmp 0x4a6054
cmp eax, dword [esp + 0x4c]
je 0x4a6050
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov byte [ebp], bl
inc ebp
test eax, eax
js 0x4a6183
mov edx, dword [esp + 0x50]
mov byte [ebp], al
mov byte [ebp + 1], dl
add ebp, 2
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
cmp eax, 1
jne 0x4a61a0
add cl, 0x25
mov byte [ebp], cl
inc ebp
jmp 0x4a6054
add cl, 0x27
mov byte [ebp], cl
mov eax, dword [esp + 0x28]
sar eax, 8
mov byte [ebp + 1], al
mov al, byte [esp + 0x28]
mov byte [ebp + 2], al
add ebp, 3
jmp 0x4a6054
cmp al, 0x29
je 0x4a61c7
cmp al, 0x43
jne 0x4a61d7
movzx eax, al
movzx eax, byte [eax + 0x4d48b0]
add edx, eax
mov dword [esp + 0x40], edx
mov ebx, ebp
sub ebx, edx
test ebx, ebx
jle 0x4a6203
movzx eax, byte [edx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x4a61f5.34
movzx eax, byte [eax + 0x4a805c]
jmp dword [eax*4 + 0x4a8008]
mov byte [edx], 0x2a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x100]
xor ebp, ebp
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ebp
or dword [ecx + 0x54], eax
inc esi
jmp 0x4a4a42
mov byte [edx], 0x2b
jmp 0x4a61ff
mov byte [edx], 0x2c
jmp 0x4a61ff
mov byte [edx], 0x2d
jmp 0x4a61ff
mov byte [edx], 0x37
jmp 0x4a61ff
mov byte [edx], 0x38
jmp 0x4a61ff
mov byte [edx], 0x39
jmp 0x4a61ff
mov byte [edx], 0x3a
jmp 0x4a61ff
mov byte [edx], 0x44
jmp 0x4a61ff
mov byte [edx], 0x45
jmp 0x4a61ff
mov byte [edx], 0x46
jmp 0x4a61ff
mov byte [edx], 0x47
jmp 0x4a61ff
mov byte [edx], 0x51
jmp 0x4a61ff
mov byte [edx], 0x52
jmp 0x4a61ff
mov byte [edx], 0x53
jmp 0x4a61ff
mov byte [edx], 0x54
jmp 0x4a61ff
mov byte [edx], 0x5e
jmp 0x4a61ff
mov byte [edx], 0x5f
jmp 0x4a61ff
mov byte [edx], 0x60
jmp 0x4a61ff
mov byte [edx], 0x61
jmp 0x4a61ff
push dword [esp + 0x44]
mov byte [ebp], 0
mov edx, 3
push dword [esp + 0x104]
mov ecx, dword [esp + 0x48]
push 0
call fcn.004a4060
mov eax, dword [esp + 0x4c]
add esp, 0xc
push ebx
push eax
add eax, 3
push eax
call fcn.004aff90
mov eax, dword [esp + 0x4c]
add ebx, 3
mov edx, dword [esp + 0x20]
mov ecx, ebx
sar ecx, 8
xor ebp, ebp
add esp, 0xc
mov dword [esp + 0x18], ebp
mov byte [eax], 0x7b
mov byte [edx + 3], 0x72
mov byte [edx + 4], cl
mov byte [edx + 5], bl
add edx, 6
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x100]
mov byte [eax + 2], bl
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
or dword [ecx + 0x54], eax
inc esi
jmp 0x4a4a42
mov ecx, dword [esp + 0x100]
inc esi
mov eax, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
mov dl, byte [esi]
mov edi, dword [ecx + 0x24]
mov dword [esp + 0x20], 0x7f
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], ebp
cmp dl, 0x2a
jne 0x4a654f
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x4a6360
movzx ecx, al
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 2
mov ecx, dword [esp + 0x100]
je 0x4a654b
mov ecx, dword [ecx + 0xc]
inc esi
mov dword [esp + 0x10], esi
mov edx, esi
mov dword [esp + 0x50], ebp
mov edi, 0x4d2034
xor ebp, ebp
mov dword [esp + 0x38], edx
movzx eax, byte [esi]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x18], ebp
test byte [eax + ecx], 2
je 0x4a639e
nop word [eax + eax]
inc esi
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x4a6390
mov ebx, esi
sub ebx, edx
cmp byte [esi], 0x3a
jne 0x4a63cf
inc esi
mov dword [esp + 0x10], esi
mov ebp, esi
mov dword [esp + 0x48], esi
mov al, byte [esi]
test al, al
je 0x4a63c7
cmp al, 0x29
je 0x4a63c7
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x4a63b8
mov eax, esi
sub eax, ebp
mov dword [esp + 0x50], eax
cmp byte [esi], 0x29
jne 0x4a640a
xor ebp, ebp
mov esi, 0x4d4388
nop dword [eax + eax]
cmp ebx, dword [esi]
jne 0x4a63f7
push ebx
push edi
push edx
call fcn.004b7e30
add esp, 0xc
test eax, eax
je 0x4a642d
mov edx, dword [esp + 0x38]
inc edi
inc ebp
add edi, dword [esi]
add esi, 0xc
cmp esi, 0x4d43f4
jl 0x4a63e0
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3c
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
lea ecx, [ebp*2]
add ecx, ebp
mov eax, dword [ecx*4 + 0x4d438c]
cmp eax, 0x98
jne 0x4a64b6
cmp dword [esp + 0x50], 0
jne 0x4a7b54
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov dword [eax + 0x58], 1
test ecx, ecx
je 0x4a648a
nop dword [eax + eax]
mov byte [edx], 0x9a
movzx eax, byte [ecx + 5]
mov byte [edx + 1], al
movzx eax, byte [ecx + 4]
mov byte [edx + 2], al
add edx, 3
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4a6470
mov ecx, dword [esp + 0x100]
cmp dword [ecx + 0x48], 0
setg al
add al, 0x98
mov byte [edx], al
inc edx
cmp dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x14], edx
jne 0x4a6534
mov dword [esp + 0x3c], 0xffffffff
jmp 0x4a6534
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x4a64e5
test eax, eax
js 0x4a7b2d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x100]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], edx
cmp al, 0x94
jne 0x4a6534
or dword [ecx + 0x50], 0x1000
jmp 0x4a6534
mov eax, dword [ecx*4 + 0x4d4390]
test eax, eax
js 0x4a7b54
mov esi, dword [esp + 0x14]
mov byte [esi], al
cmp al, 0x95
jne 0x4a650c
mov eax, dword [esp + 0x100]
or dword [eax + 0x50], 0x1000
push ebx
push dword [esp + 0x4c]
mov byte [esi + 1], bl
add esi, 2
push esi
call fcn.004b19e0
mov ecx, dword [esp + 0x10c]
lea eax, [ebx + esi]
lea edx, [eax + 1]
mov byte [eax], 0
add esp, 0xc
mov dword [esp + 0x14], edx
cmp ebp, 9
jge 0x4a6406
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
inc esi
jmp 0x4a4a42
mov eax, dword [esp + 0x30]
cmp dl, 0x3f
jne 0x4a6e29
inc esi
mov dword [esp + 0x10], esi
mov bl, byte [esi]
movzx eax, bl
mov dl, bl
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x4a6577.34
movzx eax, byte [eax + 0x4a80d4]
jmp dword [eax*4 + 0x4a8098]
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x4a659f
nop dword [eax]
cmp al, 0x29
je 0x4a65c2
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x4a6590
mov eax, dword [esp + 0xec]
mov dword [eax], 0x12
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
cmp byte [esi], 0
je 0x4a659f
mov edx, dword [esp + 0x14]
inc esi
mov ebp, dword [esp + 0x18]
jmp 0x4a4a42
mov dword [esp + 0x48], 1
lea eax, [esi + 1]
mov dword [esp + 0x20], 0x7d
mov dword [esp + 0x10], eax
mov edx, 0x7d
jmp 0x4a67ed
cmp byte [esi + 1], 0x3f
mov dword [esp + 0x20], 0x81
jne 0x4a661f
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x4a67e9
cmp al, 0x21
je 0x4a67e9
cmp al, 0x3c
je 0x4a67e9
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x34], 3
mov dword [esp + 0x24], 0xffffffff
mov byte [ebx + 3], 0x87
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x52
jne 0x4a6661
cmp byte [esi + 2], 0x26
lea ecx, [esi + 2]
jne 0x4a6661
mov dword [esp + 0x10], ecx
mov byte [ebx + 3], 0x89
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], 0xffffffff
jmp 0x4a669f
cmp al, 0x3c
jne 0x4a6674
inc esi
mov dword [esp + 0x18], 0x3e
mov dword [esp + 0x10], esi
jmp 0x4a669f
cmp al, 0x27
jne 0x4a6687
inc esi
mov dword [esp + 0x18], 0x27
mov dword [esp + 0x10], esi
jmp 0x4a669f
mov dword [esp + 0x18], ebp
cmp al, 0x2d
je 0x4a6693
cmp al, 0x2b
jne 0x4a669f
inc esi
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x100]
lea ebx, [esi + 1]
mov dword [esp + 0x68], ebx
mov edi, dword [eax + 0xc]
movzx eax, byte [ebx]
test byte [eax + edi], 0x10
je 0x4a7b9f
mov esi, ebx
xor ecx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x50], ecx
mov al, byte [esi]
movzx edx, al
test byte [edi + edx], 0x10
je 0x4a6702
test ecx, ecx
js 0x4a66ee
cmp al, 0x30
jb 0x4a66eb
cmp al, 0x39
ja 0x4a66eb
lea eax, [ecx + ecx*4]
lea ecx, [eax - 0x18]
lea ecx, [edx + ecx*2]
jmp 0x4a66ee
or ecx, 0xffffffff
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx edx, al
test byte [edi + edx], 0x10
jne 0x4a66d4
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x18]
mov ebp, esi
sub ebp, ebx
test edx, edx
jle 0x4a671e
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp eax, edx
jne 0x4a7b7b
mov al, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp al, 0x29
jne 0x4a7b7b
cmp dword [esp + 0x104], 0
jne 0x4a67e5
mov edx, dword [esp + 0x24]
test edx, edx
jle 0x4a6785
test ecx, ecx
jle 0x4a7d6e
mov ebx, dword [esp + 0x100]
mov eax, dword [ebx + 0x38]
cmp edx, 0x2d
jne 0x4a6761
sub eax, ecx
lea ecx, [eax + 1]
jmp 0x4a6763
add ecx, eax
test ecx, ecx
jle 0x4a7e25
cmp ecx, dword [ebx + 0x3c]
jg 0x4a7e25
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x4a67e5
mov ecx, dword [esp + 0x100]
xor edi, edi
mov esi, dword [ecx + 0x28]
cmp edi, dword [ecx + 0x2c]
jge 0x4a682d
nop word [eax + eax]
push ebp
lea eax, [esi + 2]
push eax
push ebx
call fcn.004b7e30
mov ecx, dword [esp + 0x10c]
add esp, 0xc
test eax, eax
je 0x4a67c2
add esi, dword [ecx + 0x30]
inc edi
cmp edi, dword [ecx + 0x2c]
jl 0x4a67a0
cmp edi, dword [ecx + 0x2c]
jge 0x4a682d
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x14]
shl eax, 8
or ecx, eax
mov eax, ecx
shr eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
inc byte [edx + 3]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x100]
mov byte [ecx], dl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], ecx
mov ebx, dword [eax + 0x54]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x6c], 0
cmp edx, 0x79
je 0x4a71ea
cmp edx, 0x7a
je 0x4a71ea
xor ecx, ecx
jmp 0x4a71ef
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x24]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
shr esi, 3
push 0
and esi, 1
mov dword [esp + 0x40], 0
push esi
push ebp
push edi
call fcn.004a3230
mov ebx, eax
add esp, 0x14
test ebx, ebx
jg 0x4a689a
mov ecx, dword [esp + 0x24]
mov dl, byte [ecx]
inc ecx
mov dword [esp + 0x24], ecx
test dl, dl
je 0x4a68ae
mov edx, dword [esp + 0x100]
lea eax, [esp + 0x38]
push eax
push 0
push esi
push ebp
push edi
lea ecx, [esp + 0x38]
call fcn.004a3230
mov ebx, eax
add esp, 0x14
test ebx, ebx
jle 0x4a6868
mov edx, dword [esp + 0x14]
mov eax, ebx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], bl
jmp 0x4a67e2
test ebx, ebx
jg 0x4a689a
cmp dword [esp + 0x18], 0
jne 0x4a7e21
cmp byte [edi], 0x52
jne 0x4a6910
xor ecx, ecx
lea edx, [ecx + 1]
cmp ebp, edx
jle 0x4a68f3
nop dword [eax + eax]
mov bl, byte [edx + edi]
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x4a7e21
lea ecx, [ecx + ecx*4]
movzx eax, bl
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
cmp edx, ebp
jl 0x4a68d0
test ecx, ecx
jne 0x4a68f8
mov ecx, 0xffff
mov edx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [edx + 3], 0x89
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x4a67e5
cmp ebp, 6
jne 0x4a693c
push ebp
push str.DEFINE
push edi
call fcn.004b7e30
add esp, 0xc
test eax, eax
jne 0x4a693c
mov ecx, dword [esp + 0x14]
lea ebp, [eax + 1]
mov edx, dword [esp + 0x20]
mov byte [ecx + 3], 0x8b
jmp 0x4a67f1
mov ecx, dword [esp + 0x50]
test ecx, ecx
jle 0x4a6954
mov eax, dword [esp + 0x100]
cmp ecx, dword [eax + 0x3c]
jle 0x4a6774
mov esi, dword [esp + 0x10]
test ecx, ecx
mov ecx, dword [esp + 0xec]
mov eax, 0xf
mov edx, 0x23
cmove eax, edx
mov dword [ecx], eax
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
inc dword [ecx + 0x48]
lea eax, [esi + 1]
mov dword [esp + 0x20], 0x77
mov edx, 0x77
mov dword [esp + 0x10], eax
jmp 0x4a67ed
inc esi
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
jne 0x4a69c8
mov edx, dword [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov byte [edx], 0x97
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc esi
jmp 0x4a4a42
inc dword [ecx + 0x48]
mov edx, 0x78
mov dword [esp + 0x20], edx
jmp 0x4a67ed
mov al, byte [esi + 1]
cmp al, 0x21
je 0x4a6a1e
cmp al, 0x3d
je 0x4a6a02
mov ebp, dword [esp + 0x100]
movzx ecx, al
mov eax, dword [ebp + 0xc]
test byte [ecx + eax], 0x10
je 0x4a7bc3
mov dl, bl
jmp 0x4a6b84
inc dword [ecx + 0x48]
lea eax, [esi + 2]
mov dword [esp + 0x20], 0x79
mov edx, 0x79
mov dword [esp + 0x10], eax
jmp 0x4a67ed
inc dword [ecx + 0x48]
lea eax, [esi + 2]
mov dword [esp + 0x20], 0x7a
mov edx, 0x7a
mov dword [esp + 0x10], eax
jmp 0x4a67ed
lea eax, [esi + 1]
mov dword [esp + 0x20], 0x7b
mov dword [esp + 0x10], eax
mov edx, 0x7b
jmp 0x4a67ed
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov edi, eax
mov dword [esp + 0xac], 1
mov dword [esp + 0x64], edi
xor edx, edx
mov byte [eax], 0x70
mov esi, dword [esp + 0x10]
lea ebp, [edi + 1]
mov edi, esi
inc esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x4a6aa2
cmp al, 0x39
ja 0x4a6aa2
movzx eax, al
lea ecx, [ebx + ebx*4]
inc esi
lea ebx, [ecx - 0x18]
mov dword [esp + 0x10], esi
lea ebx, [eax + ebx*2]
mov al, byte [esi]
cmp al, 0x30
jae 0x4a6a87
mov cl, byte [esi]
cmp cl, 0x29
je 0x4a6b0b
test cl, cl
je 0x4a7beb
cmp cl, 0x3a
cmovne esi, edi
xor eax, eax
cmp cl, 0x3a
cmove eax, ebx
lea ecx, [esi + 1]
mov ebx, eax
mov dword [esp + 0x70], ecx
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x4a7beb
cmp al, 0x29
jne 0x4a6ac8
cmp al, dl
je 0x4a7beb
sub esi, ecx
push 0
push esi
push ecx
mov ecx, 0x4e9a70
call fcn.004385f0
mov edx, eax
test edx, edx
je 0x4a7be7
cmp byte [edx + 0x51], 0
jne 0x4a7be7
mov esi, dword [esp + 0x10]
cmp ebx, 0xff
jg 0x4a7c0e
mov ecx, dword [esp + 0x100]
mov byte [ebp], bl
mov dword [ebp + 1], edx
lea edx, [ebp + 9]
mov eax, dword [esp + 0x10]
sub eax, dword [ecx + 0x18]
inc eax
mov dword [esp + 0x14], edx
sar eax, 8
mov byte [ebp + 5], al
mov al, byte [esp + 0x10]
sub al, byte [ecx + 0x18]
inc al
mov word [ebp + 7], 0
mov byte [ebp + 6], al
xor ebp, ebp
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
inc esi
jmp 0x4a4a42
inc esi
mov dword [esp + 0x10], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x4a6c25
cmp dl, 0x3e
je 0x4a6c25
cmp dl, 0x3c
jne 0x4a7c31
mov ebp, dword [esp + 0x100]
mov ecx, dword [ebp + 0xc]
lea ebx, [esi + 1]
mov esi, ebx
mov dword [esp + 0x34], ebx
cmp dl, 0x3c
mov dword [esp + 0x10], esi
mov eax, 0x3e
mov edi, 0x27
cmove edi, eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x4a6bbe
nop dword [eax]
inc esi
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x4a6bb0
mov edx, esi
sub edx, ebx
cmp dword [esp + 0x104], 0
mov dword [esp + 0x24], edx
je 0x4a6c3b
movzx eax, byte [esi]
cmp eax, edi
jne 0x4a7db4
mov ecx, dword [ebp + 0x2c]
cmp ecx, 0x2710
jge 0x4a7c54
lea eax, [edx + 3]
cmp eax, dword [ebp + 0x30]
jle 0x4a6dcf
mov dword [ebp + 0x30], eax
cmp edx, 0x20
jle 0x4a6dcf
mov eax, dword [esp + 0xec]
mov dword [eax], 0x30
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
xor ebx, ebx
cmp dl, 0x3e
mov edx, 0x29
sete bl
mov dword [esp + 0x34], ebx
jmp 0x4a74a0
mov ebp, dword [ebp + 0x28]
xor ecx, ecx
mov dword [esp + 0x50], ecx
xor eax, eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x38], eax
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
jle 0x4a6d51
nop dword [eax]
mov edi, dword [esp + 0x24]
lea edx, [ebp + 2]
mov ecx, dword [esp + 0x34]
sub edi, 4
jb 0x4a6c81
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a6c86
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a6c70
cmp edi, 0xfffffffc
je 0x4a6cba
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a6cb3
cmp edi, 0xfffffffd
je 0x4a6cba
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a6cb3
cmp edi, 0xfffffffe
je 0x4a6cba
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a6cb3
cmp edi, 0xffffffff
je 0x4a6cba
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4a6cba
sbb eax, eax
or eax, 1
jmp 0x4a6cbc
xor eax, eax
test eax, eax
jne 0x4a6cff
mov eax, dword [esp + 0x24]
cmp byte [eax + ebp + 2], 0
jne 0x4a6d21
movzx eax, byte [ebp]
movzx ecx, byte [ebp + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x4a6cf5
test dword [esp + 0x30], 0x80000
je 0x4a7c77
mov dword [esp + 0x38], 1
jmp 0x4a6d01
js 0x4a6d21
mov ecx, dword [esp + 0x100]
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
add ebp, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x2c]
cmp eax, ebx
jl 0x4a6c60
jmp 0x4a6d4a
mov eax, dword [esp + 0x100]
sub ebx, dword [esp + 0x50]
mov eax, dword [eax + 0x30]
imul ebx, eax
add eax, ebp
push ebx
push ebp
push eax
call fcn.004aff90
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x100]
cmp dword [esp + 0x38], 0
jne 0x4a6d95
mov ebx, dword [ecx + 0x2c]
xor edi, edi
mov edx, dword [ecx + 0x28]
test ebx, ebx
jle 0x4a6d95
nop dword [eax]
cmp edx, ebp
je 0x4a6d8c
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x4a7c9a
mov ecx, dword [esp + 0x100]
jmp 0x4a6d8d
dec edi
add edx, dword [ecx + 0x30]
inc edi
cmp edi, ebx
jl 0x4a6d60
mov eax, dword [ecx + 0x38]
mov ebx, dword [esp + 0x24]
inc eax
sar eax, 8
mov byte [ebp], al
mov al, byte [ecx + 0x38]
inc al
push ebx
push dword [esp + 0x38]
mov byte [ebp + 1], al
lea eax, [ebp + 2]
push eax
call fcn.004b19e0
mov eax, dword [esp + 0x10c]
add esp, 0xc
mov byte [ebx + ebp + 2], 0
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
lea eax, [ecx + 1]
inc esi
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x10], esi
mov dword [ecx + 0x2c], eax
inc dword [ecx + 0x38]
mov ebp, 2
mov eax, dword [ecx + 0x38]
mov edx, dword [esp + 0x14]
sar eax, 8
mov byte [edx + 3], al
mov al, byte [ecx + 0x38]
mov byte [edx + 4], al
jmp 0x4a67e9
mov edx, 0x29
mov dword [esp + 0x34], 1
jmp 0x4a74a0
inc esi
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0xec]
mov ebp, 0x29
jmp 0x4a6fbb
test eax, 0x1000
je 0x4a6de1
mov edx, 0x7d
mov dword [esp + 0x20], edx
jmp 0x4a67ed
mov ebp, dword [esp + 0x100]
lea ecx, [esp + 0x10]
mov edi, dword [esp + 0xec]
mov edx, edi
push 0
push dword [esp + 0x34]
mov dword [esp + 0x78], esi
push dword [ebp + 0x38]
call fcn.004a2b90
add esp, 0xc
mov ebx, eax
cmp dword [edi], 0
jne 0x4a7a1d
test ebx, ebx
jns 0x4a7978
mov ecx, ebx
neg ecx
cmp ecx, 0x1a
jne 0x4a6ebe
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x4a6ea6
cmp byte [esi + 2], 0x45
jne 0x4a6ea6
mov edx, dword [esp + 0x14]
add esi, 2
mov ecx, ebp
inc esi
mov ebp, dword [esp + 0x18]
jmp 0x4a4a42
mov edx, dword [esp + 0x14]
mov ecx, ebp
mov ebp, dword [esp + 0x18]
inc esi
mov dword [esp + 0x2c], 1
jmp 0x4a4a42
cmp ecx, 0x19
je 0x4a7964
mov edx, dword [esp + 0x3c]
cmp edx, 0xfffffffe
jne 0x4a6ee2
lea eax, [ecx - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe edx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
cmp ecx, 0x1b
jne 0x4a7445
mov esi, dword [esp + 0x10]
mov ecx, ebp
inc esi
mov ebp, 0x27
mov dword [esp + 0x10], esi
lea edx, [esi + 1]
mov dword [esp + 0x1c], esi
mov eax, dword [ecx + 0x24]
cmp byte [esi], 0x3c
mov dword [esp + 0x44], eax
mov eax, 0x3e
cmove ebp, eax
mov dword [esp + 0x68], edx
mov al, byte [edx]
cmp al, 0x2b
je 0x4a7058
cmp al, 0x2d
je 0x4a7058
cmp byte [esi + 1], 0
lea ebx, [esi + 1]
mov edi, 1
je 0x4a6f84
mov dl, al
mov esi, ecx
movzx ecx, dl
mov al, dl
cmp ecx, ebp
je 0x4a6f75
mov eax, dword [esi + 0xc]
mov cl, byte [ecx + eax]
mov eax, 0
test cl, 4
cmovne eax, edi
mov edi, eax
mov al, dl
test cl, 0x10
je 0x4a6f75
mov al, byte [ebx + 1]
inc ebx
mov dl, al
test al, al
jne 0x4a6f48
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x100]
movzx eax, al
cmp eax, ebp
je 0x4a6fa6
mov eax, dword [esp + 0xec]
inc esi
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [eax], 0x39
jmp 0x4a4a42
test edi, edi
je 0x4a7049
mov edi, dword [esp + 0xec]
mov esi, edx
mov dword [esp + 0x10], esi
mov dl, byte [esi]
cmp dl, 0x2b
jne 0x4a7094
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x4a7cbd
cmp al, 0x39
ja 0x4a7cbd
mov al, byte [esi]
xor edi, edi
mov dword [esp + 0x1c], edi
cmp al, 0x30
jb 0x4a700f
nop dword [eax]
cmp al, 0x39
ja 0x4a700b
movzx eax, al
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
mov dword [esp + 0x10], esi
lea edi, [eax + edi*2]
mov al, byte [esi]
cmp al, 0x30
jae 0x4a6ff0
mov dword [esp + 0x1c], edi
movzx eax, byte [esi]
cmp eax, ebp
jne 0x4a7d91
cmp dl, 0x2d
jne 0x4a7421
test edi, edi
je 0x4a7d6e
mov ebp, dword [esp + 0x100]
mov ecx, dword [ebp + 0x38]
sub ecx, edi
inc ecx
mov dword [esp + 0x1c], ecx
test ecx, ecx
jle 0x4a7e25
jmp 0x4a7726
mov dword [esp + 0x34], 1
mov edx, ebp
jmp 0x4a74a0
mov al, byte [esi + 2]
lea ecx, [esi + 2]
cmp al, 0x30
jb 0x4a706e
cmp al, 0x39
ja 0x4a706e
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x4a7062
movzx eax, byte [ecx]
cmp eax, ebp
je 0x4a6fb5
mov ecx, dword [esp + 0x100]
inc esi
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [edi], 0x39
jmp 0x4a4a42
cmp dl, 0x2d
jne 0x4a6fdd
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
ja case.0x4a6577.34
inc esi
mov dword [esp + 0x10], esi
jmp 0x4a6fdd
xor eax, eax
lea ecx, [esp + 0x38]
xor edi, edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], edi
cmp dl, 0x29
je 0x4a7136
cmp dl, 0x3a
je 0x4a712e
movzx eax, dl
inc esi
sub eax, 0x2d
mov dword [esp + 0x10], esi
cmp eax, 0x4b
ja case.0x4a70e5.46
movzx eax, byte [eax + 0x4a8154]
jmp dword [eax*4 + 0x4a8130]
lea ecx, [esp + 0x48]
jmp 0x4a7127
mov eax, dword [esp + 0x100]
or dword [ecx], 0x80000
or dword [eax + 0x50], 0x400
jmp 0x4a7127
or dword [ecx], 1
jmp 0x4a7127
or dword [ecx], 2
jmp 0x4a7127
or dword [ecx], 4
jmp 0x4a7127
or dword [ecx], 8
jmp 0x4a7127
or dword [ecx], 0x200
jmp 0x4a7127
or dword [ecx], 0x40
mov dl, byte [esi]
cmp dl, 0x29
jne 0x4a70c5
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
or edi, dword [esp + 0x30]
not eax
and edi, eax
cmp byte [esi], 0x29
jne 0x4a71c9
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
add eax, 3
cmp edx, eax
jne 0x4a7188
mov eax, dword [esp + 0x104]
test eax, eax
je 0x4a716c
cmp dword [eax], 6
jne 0x4a7188
mov eax, dword [esp + 0xb8]
xor ebp, ebp
mov dword [ecx + 0x4c], edi
inc esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
mov dword [eax], edi
jmp 0x4a4a42
mov eax, edi
mov dword [esp + 0x30], edi
shr eax, 9
xor ebp, ebp
and eax, 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0xb0], eax
xor eax, 1
mov dword [esp + 0xb4], eax
mov eax, edi
and eax, 1
shl eax, 0x1c
inc esi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb8]
mov dword [eax], edi
jmp 0x4a4a42
mov ecx, dword [esp + 0x14]
inc esi
mov edx, 0x7d
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edx
xor ebp, ebp
mov dword [esp + 0x48], 0
jmp 0x4a67f5
mov ecx, 1
cmp dword [esp + 0x104], 0
lea eax, [esp + 0x6c]
mov dword [esp + 0x68], 0
cmove eax, dword [esp + 0x68]
push eax
push dword [esp + 0x104]
lea eax, [esp + 0x9c]
push dword [esp + 0x100]
push eax
lea eax, [esp + 0xac]
push eax
xor eax, eax
cmp edx, 0x81
lea edx, [esp + 0x54]
sete al
add eax, dword [esp + 0x110]
push eax
push ebp
push dword [esp + 0x64]
lea eax, [esp + 0x30]
push ecx
push dword [esp + 0x110]
mov ecx, edi
push eax
call fcn.004a81a0
add esp, 0x2c
test eax, eax
je 0x4a7a1d
mov eax, dword [esp + 0x20]
cmp eax, 0x7b
jne 0x4a72fc
mov eax, dword [esp + 0x100]
cmp dword [eax + 0x38], esi
jg 0x4a7282
mov eax, dword [esp + 0x14]
mov byte [eax], 0x7c
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x29
jne 0x4a7d4b
mov ebp, dword [esp + 0x104]
test ebp, ebp
je 0x4a738e
mov edi, dword [esp + 0x6c]
mov ecx, 0x7fffffeb
mov edx, dword [ebp]
sub ecx, edx
lea eax, [edi - 6]
cmp ecx, eax
jl 0x4a7ecd
mov ecx, dword [esp + 0x100]
lea eax, [edi - 6]
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ebp], eax
mov ebp, dword [esp + 0x18]
mov dword [edx + 1], 0x720300
mov byte [edx + 5], 3
add edx, 6
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
inc esi
jmp 0x4a4a42
cmp eax, 0x7a
ja 0x4a730b
mov ecx, dword [esp + 0x100]
dec dword [ecx + 0x48]
cmp eax, 0x81
jne 0x4a7282
cmp dword [esp + 0x104], 0
jne 0x4a7282
mov ebp, dword [esp + 0x14]
xor esi, esi
mov edx, ebp
nop dword [eax]
movzx ecx, byte [edx + 1]
mov edi, esi
movzx eax, byte [edx + 2]
inc esi
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x72
jne 0x4a7330
cmp byte [ebp + 3], 0x8b
jne 0x4a7360
cmp edi, 1
jge 0x4a7cfd
mov edx, 0x8b
jmp 0x4a7286
cmp edi, 2
jge 0x4a7d24
cmp esi, 1
jne 0x4a7282
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], ecx
jmp 0x4a7294
mov edi, dword [esp + 0x40]
mov dword [esp + 0x14], edi
cmp edx, 0x8b
je 0x4a73f0
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 0xa0], 0
cmp edx, 0x7b
jb 0x4a741a
cmp edi, 0xfffffffe
jne 0x4a7405
test ecx, ecx
js 0x4a73d8
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xa0], 1
jmp 0x4a73e0
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x5c], 0xffffffff
test eax, eax
js 0x4a73f0
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
inc esi
mov ebp, dword [esp + 0x18]
jmp 0x4a4a42
test ecx, ecx
js 0x4a73e8
test eax, eax
jns 0x4a73ec
mov eax, ecx
or eax, ebx
mov dword [esp + 0x94], eax
jmp 0x4a73e8
cmp edx, 0x77
jne 0x4a73f0
jmp 0x4a73e8
cmp dl, 0x2b
jne 0x4a771b
test edi, edi
je 0x4a7d6e
mov ebp, dword [esp + 0x100]
add edi, dword [ebp + 0x38]
mov dword [esp + 0x1c], edi
jmp 0x4a7722
cmp ecx, 0x1c
jne 0x4a78cc
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x4a7477
cmp al, 0x27
je 0x4a7477
cmp al, 0x7b
je 0x4a7477
mov edx, dword [esp + 0x14]
mov ecx, ebp
mov ebp, dword [esp + 0x18]
inc esi
mov dword [edi], 0x45
jmp 0x4a4a42
inc esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x4a7491
mov edx, 0x3e
jmp 0x4a74a0
cmp al, 0x27
mov edx, 0x7d
mov eax, 0x27
cmove edx, eax
mov eax, dword [esp + 0x100]
inc esi
mov dword [esp + 0x10], esi
mov ebp, esi
mov ecx, dword [eax + 0xc]
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x4a74ce
nop word [eax + eax]
inc esi
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x4a74c0
mov edi, esi
sub edi, ebp
cmp dword [esp + 0x104], 0
je 0x4a7599
test edi, edi
je 0x4a7dd7
movzx eax, byte [esi]
cmp eax, edx
jne 0x4a7db4
cmp edi, 0x20
jg 0x4a6c02
mov ecx, dword [esp + 0x100]
mov edx, ecx
mov dword [esp + 0x38], 0
mov ebx, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x1c], esi
lea ecx, [esp + 0x24]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
shr esi, 3
push 0
and esi, 1
mov dword [esp + 0x70], ebx
push esi
push edi
push ebp
call fcn.004a3230
add esp, 0x14
test eax, eax
jg 0x4a757f
mov ebx, dword [esp + 0x100]
nop dword [eax]
mov ecx, dword [esp + 0x24]
mov dl, byte [ecx]
inc ecx
mov dword [esp + 0x24], ecx
test dl, dl
je 0x4a757b
lea eax, [esp + 0x38]
mov edx, ebx
push eax
push 0
push esi
push edi
push ebp
lea ecx, [esp + 0x38]
call fcn.004a3230
add esp, 0x14
test eax, eax
jle 0x4a7550
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x100]
xor ecx, ecx
test eax, eax
cmovns ecx, eax
mov dword [ebp + 0x1c], ebx
mov dword [esp + 0x1c], ecx
jmp 0x4a767e
mov ecx, dword [esp + 0x100]
xor ebx, ebx
mov esi, dword [ecx + 0x28]
cmp ebx, dword [ecx + 0x2c]
jge 0x4a75f8
nop word [eax + eax]
push edi
lea eax, [esi + 2]
push eax
push ebp
call fcn.004b7e30
add esp, 0xc
test eax, eax
jne 0x4a75c8
cmp byte [esi + edi + 2], al
je 0x4a75da
mov ecx, dword [esp + 0x100]
inc ebx
add esi, dword [ecx + 0x30]
cmp ebx, dword [ecx + 0x2c]
jl 0x4a75b0
jmp 0x4a75e1
mov ecx, dword [esp + 0x100]
cmp ebx, dword [ecx + 0x2c]
jge 0x4a75f8
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x4a7677
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
shr esi, 3
push 0
and esi, 1
mov dword [esp + 0x40], 0
push esi
push edi
push ebp
call fcn.004a3230
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x1c], ecx
test ecx, ecx
jg 0x4a7677
mov ecx, dword [esp + 0x24]
mov dl, byte [ecx]
inc ecx
mov dword [esp + 0x24], ecx
test dl, dl
je 0x4a766b
mov edx, dword [esp + 0x100]
lea eax, [esp + 0x38]
push eax
push 0
push esi
push edi
push ebp
lea ecx, [esp + 0x38]
call fcn.004a3230
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x1c], ecx
test ecx, ecx
jle 0x4a7633
jmp 0x4a766f
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x4a7e21
mov ebp, dword [esp + 0x100]
cmp dword [esp + 0x34], 0
jne 0x4a7726
mov edx, dword [esp + 0x3c]
cmp edx, 0xfffffffe
mov eax, 0xffffffff
mov ebx, 1
cmove edx, eax
test byte [esp + 0x30], 1
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
setne al
add al, 0x6d
mov dword [esp + 0x18], edx
mov byte [edx], al
mov eax, ecx
sar eax, 8
mov byte [edx + 1], al
mov eax, ebx
mov byte [edx + 2], cl
add edx, 3
shl eax, cl
cmp ecx, 0x20
mov dword [esp + 0x14], edx
cmovge eax, ebx
or dword [ebp + 0x44], eax
cmp ecx, dword [ebp + 0x40]
jle 0x4a76dc
mov dword [ebp + 0x40], ecx
mov edx, dword [ebp + 0x20]
test edx, edx
je 0x4a78fa
nop word [eax + eax]
movzx eax, word [edx + 4]
cmp eax, ecx
je 0x4a78dd
mov edx, dword [edx]
test edx, edx
jne 0x4a76f0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x100]
inc esi
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
jmp 0x4a4a42
mov ebp, dword [esp + 0x100]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x104], 0
mov edx, dword [esp + 0x14]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x18], edx
jne 0x4a787e
mov byte [edx], 0
test ecx, ecx
je 0x4a775e
push ecx
mov ecx, dword [ebp + 0x14]
xor edx, edx
call fcn.004a3ae0
mov ecx, dword [esp + 0x20]
add esp, 4
mov edx, dword [esp + 0x14]
mov ebx, eax
test ebx, ebx
jne 0x4a782b
mov eax, dword [ebp + 0x18]
mov edx, ebp
mov esi, dword [esp + 0x30]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
shr esi, 3
push ebx
and esi, 1
mov dword [esp + 0x40], ebx
push esi
push ecx
push ebx
lea ecx, [esp + 0x38]
call fcn.004a3230
mov edi, dword [esp + 0x30]
add esp, 0x14
test eax, eax
jg 0x4a77ce
nop word [eax + eax]
mov ecx, dword [esp + 0x24]
mov dl, byte [ecx]
inc ecx
mov dword [esp + 0x24], ecx
test dl, dl
je 0x4a77cc
lea eax, [esp + 0x38]
mov edx, ebp
push eax
push 0
push esi
push edi
push 0
lea ecx, [esp + 0x38]
call fcn.004a3230
add esp, 0x14
test eax, eax
jle 0x4a77a0
test eax, eax
js 0x4a7e21
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
add eax, 0xffffff9c
add eax, dword [ebp + 0x34]
add ebx, edi
cmp dword [ebp + 0x24], eax
jb 0x4a77ff
mov ecx, ebp
call fcn.004a2aa0
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
test eax, eax
jne 0x4a7a1d
mov edx, dword [esp + 0x14]
mov ecx, edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [ebp + 0x14]
mov eax, dword [ebp + 0x24]
inc cl
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x100]
add dword [ecx + 0x24], 2
jmp 0x4a7889
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x4a787e
cmp dword [esp + 0xfc], ecx
jg 0x4a787e
mov eax, dword [esp + 0xf8]
mov esi, eax
test eax, eax
je 0x4a7dfa
mov ecx, dword [esi + 4]
cmp ecx, ebx
jb 0x4a7dfa
push ebp
push 0
call fcn.004a3bf0
add esp, 8
test eax, eax
je 0x4a787e
mov esi, dword [esi]
test esi, esi
je 0x4a7dfa
mov edx, dword [esp + 0x14]
jmp 0x4a7854
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x100]
mov byte [edx], 0x6f
mov eax, ebx
sub eax, dword [ecx + 0x14]
sar eax, 8
mov byte [edx + 1], al
sub bl, byte [ecx + 0x14]
mov byte [edx + 2], bl
add edx, 3
cmp dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x14], edx
mov dword [esp + 0xa0], 0
jne 0x4a7905
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
inc esi
mov dword [esp + 0x3c], 0xffffffff
jmp 0x4a4a42
cmp ecx, 0x23
jl 0x4a7913
mov ecx, 0xffffffdd
sub ecx, ebx
jmp 0x4a768d
mov ecx, dword [esp + 0x100]
mov ebp, dword [esp + 0x18]
mov word [edx + 6], bx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc esi
jmp 0x4a4a42
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
inc esi
jmp 0x4a4a42
cmp ecx, 0x16
je 0x4a7e48
cmp ecx, 0xf
je 0x4a7e48
cmp ecx, 0x10
je 0x4a7e48
mov edx, dword [esp + 0x14]
lea eax, [ecx - 6]
xor ebp, ebp
cmp eax, 0x10
mov eax, 0xd
cmovbe ebp, edx
cmp ebx, 0xfffffff2
mov dword [esp + 0x18], ebp
cmove ecx, eax
mov byte [edx], cl
inc edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x100]
inc esi
mov dword [esp + 0x14], edx
jmp 0x4a4a42
mov esi, dword [esp + 0x10]
mov ecx, ebp
mov edx, dword [esp + 0x14]
inc esi
mov ebp, dword [esp + 0x18]
jmp 0x4a4a42
mov edx, dword [esp + 0x14]
test byte [esp + 0x30], 1
mov ebp, edx
mov dword [esp + 0x18], ebp
setne al
add al, 0x1d
mov byte [edx], al
lea eax, [edx + 1]
mov byte [edx + 1], bl
add edx, 2
mov dword [esp + 0x14], edx
cmp bl, 0xd
je 0x4a79a5
cmp bl, 0xa
jne 0x4a79b5
mov ecx, dword [esp + 0x100]
or dword [ecx + 0x50], 0x800
jmp 0x4a79bc
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
cmp edi, 0xfffffffe
jne 0x4a79ed
mov eax, dword [esp + 0x54]
movzx ebx, bl
or ebx, dword [esp + 0xa4]
inc esi
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebx
jmp 0x4a4a42
movzx eax, byte [eax]
or eax, dword [ecx + 0x54]
or eax, dword [esp + 0xa4]
inc esi
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], eax
jmp 0x4a4a42
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1e
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x10]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1f
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [esi], 7
mov esi, dword [esp + 0x10]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [esi], 0x47
mov esi, dword [esp + 0x10]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 8
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 6
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
cmp byte [esi + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [ebp], 9
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x42
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x3b
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
dec esi
mov dword [eax], 0x1a
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
inc esi
mov dword [eax], 0x1c
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
inc esi
mov dword [eax], 0x18
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax], 0x27
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x26
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x29
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x31
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x2b
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x41
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov dword [edi], 0x3f
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
dec esi
mov dword [eax], 0xc
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x36
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x1b
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0xe
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3a
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1d
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x2a
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3e
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x28
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax], 0xf
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x10]
mov dword [edi], 0x2d
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x104]
mov dword [eax], ecx
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
mov eax, dword [esp + 0xbc]
mov dword [eax], edx
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
test ebx, ebx
je 0x4a7ebd
mov ecx, dword [ebx]
mov eax, edx
mov ebp, dword [esp + 0x98]
mov edi, 0x7fffffeb
sub eax, ebp
sub edi, ecx
cmp edi, eax
jl 0x4a7ecd
sub ecx, ebp
add ecx, edx
mov dword [ebx], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x14
mov eax, dword [esp + 0xe8]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x34
mov eax, dword [esp + 0xe8]
pop edi
mov dword [eax], esi
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret