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

Disassembly:
sub esp, 0xcc
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x1c], eax
shr eax, 9
and eax, 1
mov dword [esp + 0x9c], eax
xor eax, 1
push ebx
mov ebx, dword [ecx]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xa8], eax
mov eax, 0xfffffffe
push ebp
xor edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
push esi
push edi
mov edi, dword [ecx]
xor ebp, ebp
xor ecx, ecx
and eax, 1
mov esi, ebx
shl eax, 8
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0xb8], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x100], edx
je 0x46bdc8
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 0x10]
add edx, 0xf9c
cmp ebx, edx
ja 0x46e724
mov ecx, dword [esp + 0x90]
cmp ebx, ecx
jae 0x46bd4b
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov eax, dword [esp + 0x100]
mov eax, dword [eax]
mov edx, ebx
sub edx, ecx
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x46e747
sub eax, dword [esp + 0x90]
mov edx, dword [esp + 0x100]
add eax, ebx
mov dword [edx], eax
xor edx, edx
cmp ebp, edx
je 0x46bdb5
cmp ebp, esi
jbe 0x46bdbb
mov eax, ebx
sub eax, ebp
push eax
push ebp
push esi
call fcn.004777f0
mov edi, dword [esp + 0x1c]
mov ecx, esi
sub ecx, ebp
add ebx, ecx
mov ecx, dword [esp + 0x68]
mov ebp, esi
add esp, 0xc
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebp
xor edx, edx
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov dword [esp + 0x14], esi
mov ebx, esi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov eax, dword [esp + 0xfc]
mov esi, dword [eax + 0x10]
add esi, 0xf9c
cmp dword [eax + 0x24], esi
ja 0x46e76a
cmp dword [esp + 0x50], edx
je 0x46bed2
cmp dword [esp + 0x18], edx
je 0x46bed2
cmp dword [esp + 0x18], 0x5c
jne 0x46be1e
cmp byte [edi + 1], 0x45
jne 0x46be1e
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x50], edx
inc edi
xor edx, edx
jmp 0x46bd0a
cmp ecx, edx
je 0x46be5b
cmp dword [esp + 0x100], edx
jne 0x46be57
movzx edx, byte [ecx + 6]
movzx eax, byte [ecx + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 8], dl
mov byte [ecx + 9], al
mov edi, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x5c], edx
test dword [esp + 0x2c], 0x4000
je case.0x46c0ab.1
mov esi, dword [esp + 0xfc]
mov word [ebx], 0xff53
mov dword [ebx + 2], edx
mov eax, edi
mov ecx, eax
sub ecx, dword [esi + 0x18]
mov dword [esp + 0x5c], ebx
sar ecx, 8
mov byte [ebx + 6], cl
sub al, byte [esi + 0x18]
mov word [ebx + 8], 0
mov byte [ebx + 7], al
add ebx, 0xa
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x18]
mov dl, byte [esp + 0x2c]
and dl, 1
or dl, 0x1c
mov byte [ebx], dl
mov dword [esp + 0x24], ebx
mov byte [ebx + 1], al
add ebx, 2
mov dword [esp + 0x14], ebx
cmp al, 0xd
je 0x46bec2
cmp al, 0xa
jne 0x46e6a6
mov edx, dword [esp + 0xfc]
or dword [edx + 0x48], 0x20
jmp 0x46e6ad
mov eax, dword [esp + 0x18]
cmp eax, 0x2a
je 0x46bff5
cmp eax, 0x2b
je 0x46bff5
cmp eax, 0x3f
je 0x46bff5
cmp eax, 0x7b
jne 0x46bf06
lea eax, [edi + 1]
call fcn.00469fa0
test eax, eax
jne 0x46bff5
mov esi, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp esi, ecx
je 0x46bf60
mov eax, dword [esp + 0xa4]
mov edx, eax
dec eax
mov dword [esp + 0xa4], eax
test edx, edx
jg 0x46bf60
cmp dword [esp + 0x100], ecx
jne 0x46bf5c
movzx edx, byte [esi + 6]
movzx eax, byte [esi + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [esi + 8], dl
mov byte [esi + 9], al
mov edi, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x2c]
test dl, 8
je 0x46c040
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
test byte [edx + ecx], 1
jne 0x46c0d6
cmp edx, 0x23
jne 0x46c049
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
lea esp, [esp]
mov edx, dword [eax + 0x58]
test edx, edx
je 0x46c002
mov eax, dword [eax + 0x1c]
cmp edi, eax
jae 0x46c029
mov esi, dword [esp + 0xfc]
push edx
add esi, 0x5c
mov edx, eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je 0x46c029
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x5c]
lea edi, [edi + ecx - 1]
mov dword [esp + 0x10], edi
cmp byte [edi], 0
jne 0x46c0d6
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0
jmp 0x46c04b
mov dword [esp + 0x1c], 1
jmp 0x46bf60
mov edx, dword [eax + 0x5c]
mov eax, dword [eax + 0x1c]
sub eax, edx
cmp edi, eax
ja 0x46c029
mov eax, dword [esp + 0xfc]
cmp cl, byte [eax + 0x60]
jne 0x46c029
cmp edx, 1
je 0x46bfc9
mov cl, byte [edi + 1]
mov edx, eax
cmp cl, byte [edx + 0x61]
je 0x46bfc9
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
mov eax, dword [esp + 0xfc]
jmp 0x46bfa0
mov esi, dword [esp + 0xfc]
jmp 0x46c053
mov esi, eax
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
xor ecx, ecx
test edx, 0x4000
je 0x46c095
cmp dword [esp + 0x1c], ecx
jne 0x46c095
mov word [ebx], 0xff53
mov dword [ebx + 2], ecx
mov eax, edi
mov edx, eax
sub edx, dword [esi + 0x18]
mov dword [esp + 0x5c], ebx
sar edx, 8
mov byte [ebx + 6], dl
sub al, byte [esi + 0x18]
mov edx, dword [esp + 0x2c]
mov byte [ebx + 7], al
mov word [ebx + 8], cx
mov edi, dword [esp + 0x10]
add ebx, 0xa
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], 0x7c
ja case.0x46c0ab.1
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x46ec8c]
jmp dword [eax*4 + 0x46ec58]
test dl, 2
je 0x46c0c6
cmp dword [esp + 0x30], 0xfffffffe
jne 0x46c0c6
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x24], ecx
mov byte [ebx], 0x1a
inc ebx
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov dword [esp + 0x24], ecx
mov byte [ebx], 0x1b
jmp 0x46c0cd
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c106
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x48]
shr edx, 2
and dl, 1
or dl, 0xc
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], ebx
mov byte [ebx], dl
jmp 0x46c0cd
test dword [esi + 0x44], 0x2000000
je case.0x46c0ab.1
mov edx, dword [esp + 0xec]
mov dword [edx], 0x40
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov al, byte [edi + 1]
mov dword [esp + 0x24], ebx
cmp al, 0x3a
je 0x46c166
cmp al, 0x2e
je 0x46c166
cmp al, 0x3d
jne 0x46c17d
lea edx, [esp + 0x6c]
push edx
mov eax, edi
call fcn.0046b3c0
add esp, 4
test eax, eax
jne 0x46e815
xor ebp, ebp
mov dword [esp + 0x28], ebp
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
cmp esi, 0x5c
jne 0x46c1b3
inc edi
cmp byte [edi], 0x45
je 0x46c183
push 3
push 0x497ad0
push edi
call fcn.0047b9c1
mov edi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x46c218
add edi, 3
jmp 0x46c183
test ebp, ebp
jne 0x46c1c1
cmp esi, 0x5e
jne 0x46c1c1
lea ebp, [esi - 0x5d]
jmp 0x46c17f
cmp esi, 0x5d
jne 0x46c218
mov eax, dword [esp + 0xfc]
test dword [eax + 0x44], 0x2000000
je 0x46c218
mov eax, dword [esp + 0x30]
mov ecx, ebp
neg ecx
sbb cl, cl
and cl, 0x9a
add cl, 0x73
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x14], ebx
cmp eax, 0xfffffffe
jne 0x46c1f9
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x54], eax
xor edx, edx
jmp 0x46bd0a
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
cmp esi, eax
je 0x46e8a9
mov edi, edi
cmp dword [esp + 0x50], 0
je 0x46c288
cmp esi, 0x5c
jne 0x46c441
cmp byte [edi + 1], 0x45
jne 0x46c441
mov dword [esp + 0x50], 0
inc edi
jmp 0x46c532
cmp esi, 0x5b
jne 0x46c3f7
mov al, byte [edi + 1]
cmp al, 0x3a
je 0x46c2a4
cmp al, 0x2e
je 0x46c2a4
cmp al, 0x3d
jne 0x46c441
lea edx, [esp + 0x6c]
push edx
mov eax, edi
call fcn.0046b3c0
add esp, 4
test eax, eax
je 0x46c441
cmp byte [edi + 1], 0x3a
mov eax, dword [esp + 0xfc]
mov ebp, dword [eax + 8]
mov dword [esp + 0x40], 0
jne 0x46e844
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5e
jne 0x46c2f6
mov eax, 1
add edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x6c]
sub ebx, edi
push edi
call fcn.0046b410
add esp, 4
test eax, eax
js 0x46e867
test byte [esp + 0x2c], 1
je 0x46c31b
cmp eax, 2
jg 0x46c31b
xor eax, eax
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x496f18]
add esi, ebp
mov ecx, 8
lea edi, [esp + 0xbc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x496f1c]
mov esi, dword [eax*4 + 0x496f20]
test ecx, ecx
js 0x46c374
xor eax, eax
add ecx, ebp
test esi, esi
js 0x46c362
nop
mov dl, byte [ecx + eax]
or byte [esp + eax + 0xbc], dl
inc eax
cmp eax, 0x20
jl 0x46c350
jmp 0x46c374
mov dl, byte [ecx + eax]
not dl
and byte [esp + eax + 0xbc], dl
inc eax
cmp eax, 0x20
jl 0x46c362
test esi, esi
jns 0x46c37a
neg esi
cmp esi, 1
jne 0x46c389
and byte [esp + 0xbd], 0xc3
jmp 0x46c396
cmp esi, 2
jne 0x46c396
and byte [esp + 0xc7], 0x7f
xor eax, eax
cmp dword [esp + 0x40], eax
je 0x46c3d0
mov edi, edi
mov cl, byte [esp + eax + 0xbc]
not cl
or byte [esp + eax + 0x70], cl
inc eax
cmp eax, 0x20
jl 0x46c3a0
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], 0xa
jmp 0x46c532
mov dl, byte [esp + eax + 0xbc]
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c3d0
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], 0xa
jmp 0x46c532
cmp esi, 0x5c
jne 0x46c441
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xec]
mov edx, dword [esp + 0xfc]
push 1
push eax
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x18]
push edi
push ecx
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
mov esi, eax
jne 0x46d4b6
mov ecx, esi
neg ecx
cmp ecx, 5
jne 0x46c4bf
lea esi, [ecx + 3]
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46c467
xor eax, eax
lea esp, [esp]
cmp byte [edi + 2], 0x45
jne 0x46c467
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi + 1], 0x5c
mov dword [esp + 0x50], eax
je 0x46c450
mov ebp, edi
cmp esi, 0xd
je 0x46c473
cmp esi, 0xa
jne 0x46c47e
mov eax, dword [esp + 0xfc]
or dword [eax + 0x48], 0x20
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x46c84b
cmp byte [edi + 1], 0x2d
jne 0x46c84b
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x46c71f
cmp byte [edi + 1], 0x45
jne 0x46c6eb
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x46c4a4
jmp 0x46c71f
cmp ecx, 0x1a
jne 0x46c4e3
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46c4d9
cmp byte [edi + 2], 0x45
jne 0x46c4d9
add edi, 2
jmp 0x46c532
mov dword [esp + 0x50], 1
jmp 0x46c532
cmp ecx, 0x19
je 0x46c52e
test esi, esi
jns 0x46c43d
mov eax, dword [esp + 0xfc]
mov eax, dword [eax + 8]
mov edx, 2
add dword [esp + 0x18], edx
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.0x46c50f.12
jmp dword [ecx*4 + 0x46ed0c]
xor esi, esi
jmp 0x46c520
mov cl, byte [eax + esi + 0x40]
or byte [esp + esi + 0x70], cl
inc esi
cmp esi, 0x20
jl 0x46c520
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
test esi, esi
je 0x46e8a9
cmp esi, 0x5d
jne 0x46c260
cmp dword [esp + 0x50], 0
jne 0x46c267
cmp dword [esp + 0x18], 1
jne 0x46c8ac
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
je 0x46c8a3
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c584
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov dl, byte [esp + 0x1c]
mov byte [ebx], 0x1e
mov byte [ebx + 1], dl
mov dword [esp + 0x54], eax
add ebx, 2
jmp 0x46c0ce
mov dword [esp + 0x20], 1
xor esi, esi
mov dl, byte [eax + esi + 0x40]
not dl
or byte [esp + esi + 0x70], dl
inc esi
cmp esi, 0x20
jl 0x46c5a4
jmp 0x46c52e
xor esi, esi
jmp 0x46c5c0
mov cl, byte [eax + esi + 0xa0]
or byte [esp + esi + 0x70], cl
inc esi
cmp esi, 0x20
jl 0x46c5c0
jmp 0x46c52e
mov dword [esp + 0x20], 1
xor esi, esi
mov dl, byte [eax + esi + 0xa0]
not dl
or byte [esp + esi + 0x70], dl
inc esi
cmp esi, 0x20
jl 0x46c5e0
jmp 0x46c52e
mov edi, eax
lea eax, [esp + 0x70]
xor esi, esi
sub edi, eax
lea ecx, [esp + esi + 0x70]
mov dl, byte [edi + ecx]
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x46c602
and byte [esp + 0x71], 0xf7
jmp 0x46c52e
mov edi, eax
lea eax, [esp + 0x70]
xor esi, esi
mov dword [esp + 0x20], 1
sub edi, eax
lea ecx, [ecx]
lea ecx, [esp + esi + 0x70]
mov dl, byte [edi + ecx]
not dl
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x46c630
or byte [esp + 0x71], 8
jmp 0x46c52e
or byte [esp + 0x71], dl
or byte [esp + 0x74], 1
or byte [esp + 0x84], 1
jmp 0x46c52e
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x46c67e
sub ecx, 3
je 0x46c677
sub ecx, 0x10
jne 0x46c683
mov edx, 0xfe
jmp 0x46c683
mov edx, 0xfd
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c663
jmp 0x46c52e
or byte [esp + 0x71], 0x3c
or byte [esp + 0x80], 0x20
jmp 0x46c52e
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x46c6bc
sub ecx, 0xf
jne 0x46c6c1
mov edx, 0xdf
jmp 0x46c6c1
mov edx, 0xc3
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c6a6
jmp 0x46c52e
test byte [esp + 0x2c], 0x40
jne 0x46e879
mov edi, dword [esp + 0x10]
sub dword [esp + 0x18], edx
movzx esi, byte [edi]
jmp 0x46c441
cmp byte [edi], 0x5c
jne 0x46c71f
cmp byte [edi + 1], 0x51
jne 0x46c71f
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x46c716
cmp byte [edi + 1], 0x45
jne 0x46c716
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x46c6f0
jmp 0x46c71f
mov ecx, 1
mov dword [esp + 0x50], ecx
mov al, byte [edi]
test al, al
je 0x46c845
test ecx, ecx
jne 0x46c735
cmp al, 0x5d
je 0x46c845
movzx eax, al
mov dword [esp + 0x4c], eax
test ecx, ecx
jne 0x46c792
cmp eax, 0x5c
jne 0x46c792
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xec]
mov edx, dword [esp + 0xfc]
push 1
push eax
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x18]
push edi
push ecx
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
mov dword [esp + 0x4c], eax
jne 0x46d4b6
test eax, eax
jns 0x46c78e
cmp eax, 0xfffffffb
jne 0x46c845
mov eax, 8
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x10]
cmp eax, esi
jl 0x46e886
je 0x46c84b
cmp eax, 0xd
je 0x46c7aa
cmp eax, 0xa
jne 0x46c7b5
mov ecx, dword [esp + 0xfc]
or dword [ecx + 0x48], 0x20
mov edx, dword [esp + 0x18]
mov ecx, eax
sub ecx, esi
cmp dword [esp + 0x100], 0
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x46c532
cmp esi, eax
jg 0x46c532
mov eax, dword [esp + 0x2c]
and eax, 1
mov dword [esp + 0x60], eax
lea ebx, [ebx]
mov eax, esi
cdq
and edx, 7
add eax, edx
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea ebp, [esp + eax + 0x70]
or byte [ebp], dl
cmp dword [esp + 0x60], 0
je 0x46c839
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + esi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea ebp, [esp + eax + 0x70]
or byte [ebp], dl
inc esi
cmp esi, dword [esp + 0x4c]
jle 0x46c7f0
jmp 0x46c532
mov edi, ebp
mov dword [esp + 0x10], edi
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea ebp, [esp + eax + 0x70]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [ebp], al
test byte [esp + 0x2c], 1
je 0x46c896
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 4]
movzx esi, byte [edx + esi]
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea ebp, [esp + eax + 0x70]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [ebp], al
inc dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x46c532
mov al, byte [esp + 0x1c]
jmp 0x46be9c
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c8bc
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x20]
setne cl
add cl, 0x4e
mov byte [ebx], cl
inc ebx
test eax, eax
je 0x46c907
cmp dword [esp + 0x100], 0
jne 0x46c914
lea esi, [esp + 0x70]
mov eax, ebx
sub esi, ebx
mov edi, 0x20
mov dl, byte [esi + eax]
not dl
mov byte [eax], dl
inc eax
dec edi
jne 0x46c8f4
add ebx, 0x20
jmp 0x46c0ce
mov ecx, 8
lea esi, [esp + 0x70]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x46c0ce
cmp dword [esp + 0x1c], ecx
je case.0x46c0ab.1
mov esi, dword [esp + 0xec]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x48]
lea eax, [edi + 1]
push ecx
mov edi, esi
call fcn.0046a020
add esp, 8
cmp dword [esi], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x46d4ba
jmp 0x46c97d
mov dword [esp + 0x38], 0xffffffff
jmp 0x46c979
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0xffffffff
jmp 0x46c97d
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x38]
test ebp, ebp
je 0x46e8cc
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x46c9a1
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
sub eax, edx
neg eax
sbb eax, eax
and eax, 0x200
mov dword [esp + 0xa8], eax
xor esi, esi
mov dword [esp + 0x3c], ebp
mov al, byte [edi + 1]
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
cmp al, 0x2b
jne 0x46c9da
xor eax, eax
mov esi, 1
inc edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edi
jmp 0x46c9f3
cmp al, 0x3f
jne 0x46c9ec
mov eax, dword [esp + 0xb4]
inc edi
mov dword [esp + 0x10], edi
jmp 0x46c9f3
mov eax, dword [esp + 0xac]
mov cl, byte [ebp]
mov dword [esp + 0x28], eax
cmp cl, 0x1c
je 0x46cfb4
cmp cl, 0x1d
je 0x46cfb4
cmp cl, 0x1e
jne 0x46ca26
movzx edx, byte [ebp + 1]
mov dword [esp + 0x34], 0xd
mov dword [esp + 0x18], edx
jmp 0x46cfda
cmp cl, 0x17
jae 0x46ca56
movzx ecx, cl
mov dword [esp + 0x34], 0x1a
mov dword [esp + 0x18], ecx
test esi, esi
jne 0x46d013
cmp dword [esp + 0x38], esi
jge 0x46d013
mov edx, dword [esp + 0x2c]
push edx
jmp 0x46cfe9
cmp cl, 0x4e
je 0x46cefc
cmp cl, 0x4f
je 0x46cefc
cmp cl, 0x51
je 0x46cefc
cmp cl, 0x5e
je 0x46cab1
cmp cl, 0x5f
je 0x46cab1
cmp cl, 0x5d
je 0x46cab1
cmp cl, 0x60
je 0x46cab1
cmp cl, 0x73
je 0x46cf08
mov edx, dword [esp + 0xec]
mov dword [edx], 0xb
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
xor esi, esi
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
cmp cl, 0x60
jne 0x46cad2
cmp byte [ebp + 3], 0x68
je 0x46e8ef
cmp edx, 0xffffffff
jne 0x46cafc
mov eax, ebp
lea esp, [esp]
movzx ecx, byte [eax + 1]
movzx esi, byte [eax + 2]
shl ecx, 8
or ecx, esi
add eax, ecx
cmp byte [eax], 0x55
jne 0x46cae0
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x46cbcf
mov byte [ebx], al
cmp edx, 1
jg 0x46cb6e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0xfc]
push edx
push eax
push 1
push ebp
call fcn.0046b460
mov ecx, dword [esp + 0x28]
push ecx
lea edi, [ebp + 1]
push ebp
push edi
call fcn.004777f0
inc ebx
add esp, 0x1c
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], ebx
jne 0x46cb4f
mov byte [ebp], 0x76
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov dl, byte [esp + 0x28]
add dl, 0x69
dec dword [esp + 0x38]
mov byte [ebp], dl
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x10]
jmp 0x46ccea
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xfc]
push eax
push ecx
push 4
push ebp
call fcn.0046b460
mov edx, dword [esp + 0x28]
push edx
lea eax, [ebp + 4]
push ebp
push eax
call fcn.004777f0
mov cl, byte [esp + 0x44]
add cl, 0x69
mov byte [ebp], cl
mov byte [ebp + 1], 0x5e
add ebp, 2
mov word [ebp], 0
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], ebp
add ebp, 2
add ebx, 4
add esp, 0x1c
dec dword [esp + 0x38]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
jmp 0x46ccea
cmp eax, 1
jle 0x46ccda
mov edx, dword [esp + 0x100]
test edx, edx
je 0x46cc26
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x60], eax
imul eax, dword [esp + 0x64]
fild dword [esp + 0x60]
fimul dword [esp + 0x64]
mov ecx, eax
fcomp qword [0x497c00]
fnstsw ax
test ah, 0x41
je 0x46e7dc
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e7dc
add ecx, eax
mov dword [edx], ecx
jmp 0x46ccda
cmp dword [esp + 0xa0], 0
je 0x46cc3f
cmp dword [esp + 0x48], 0
jge 0x46cc3f
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], edx
cmp dword [esp + 0x44], 1
jle 0x46ccda
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x40], eax
jmp 0x46cc60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xfc]
mov edi, dword [ecx + 0x24]
push edx
push ebp
push ebx
call fcn.0047b470
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp esi, edi
jae 0x46ccc6
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + 0x24]
add ecx, eax
sar ecx, 8
mov byte [edx], cl
mov cl, byte [esi + 1]
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + 0x24]
add cl, al
mov byte [edx + 1], cl
mov ecx, dword [esp + 0xfc]
add dword [ecx + 0x24], 2
add esi, 2
cmp esi, edi
jb 0x46cc85
add ebx, eax
dec dword [esp + 0x40]
mov dword [esp + 0x58], edi
jne 0x46cc60
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x38]
test ebp, ebp
jle 0x46ccec
sub ebp, dword [esp + 0x44]
mov dword [esp + 0x38], ebp
test ebp, ebp
js 0x46ce8a
mov edx, dword [esp + 0x100]
test edx, edx
je 0x46cd45
test ebp, ebp
jle 0x46cd45
mov eax, dword [esp + 0x64]
add eax, 7
mov dword [esp + 0x60], eax
imul eax, ebp
fild dword [esp + 0x60]
fimul dword [esp + 0x38]
lea ecx, [eax - 6]
fcomp qword [0x497c00]
fnstsw ax
test ah, 0x41
je 0x46e912
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e912
add ecx, eax
mov dword [edx], ecx
jmp 0x46ce38
dec ebp
mov dword [esp + 0x40], ebp
js 0x46ce38
mov al, byte [esp + 0x28]
add al, 0x69
mov byte [esp + 0x6b], al
lea ebx, [ebx]
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x24]
mov dl, byte [esp + 0x6b]
mov byte [ebx], dl
inc ebx
mov dword [esp + 0x28], ecx
test ebp, ebp
je 0x46cd9e
mov ecx, dword [esp + 0x1c]
mov byte [ebx], 0x5e
inc ebx
test ecx, ecx
jne 0x46cd89
xor eax, eax
jmp 0x46cd8d
mov eax, ebx
sub eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x1c], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push edx
push eax
push ebx
call fcn.0047b470
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
add esp, 0xc
cmp esi, dword [esp + 0x28]
jae 0x46ce1b
mov edi, ebp
neg edi
sbb edi, edi
and edi, 3
inc edi
mov eax, ebp
neg eax
sbb al, al
and al, 3
inc al
movzx edx, byte [esi]
movzx ebp, byte [esi + 1]
shl edx, 8
or edx, ebp
mov ebp, dword [esp + 0xfc]
add edx, edi
add edx, ecx
mov ecx, dword [ebp + 0x24]
sar edx, 8
mov byte [ecx], dl
mov dl, byte [esi + 1]
mov ecx, dword [esp + 0x18]
mov ebp, dword [ebp + 0x24]
add dl, al
add dl, cl
mov byte [ebp + 1], dl
mov edx, dword [esp + 0xfc]
add dword [edx + 0x24], 2
add esi, 2
cmp esi, dword [esp + 0x28]
jb 0x46cdd3
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
add ebx, ecx
dec ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], ebp
jns 0x46cd60
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
test edx, edx
je 0x46d197
mov eax, ebx
sub eax, edx
inc eax
mov esi, ebx
sub esi, eax
movzx ecx, byte [esi + 1]
movzx edi, byte [esi + 2]
shl ecx, 8
or ecx, edi
jne 0x46ce64
xor edx, edx
jmp 0x46ce66
sub edx, ecx
mov byte [ebx], 0x55
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
add ebx, 3
mov byte [esi + 1], cl
mov byte [esi + 2], al
test edx, edx
jne 0x46ce48
mov dword [esp + 0x14], ebx
jmp 0x46d18f
mov al, byte [esp + 0x28]
mov esi, ebx
sub esi, dword [esp + 0x34]
add al, 0x56
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
shl ecx, 8
or ecx, edx
mov edi, esi
sub edi, ecx
cmp dword [esp + 0x100], 0
mov byte [esi], al
jne 0x46d18f
cmp byte [edi], 0x5d
je 0x46d18f
mov ebp, edi
mov eax, dword [esp + 0xfc]
push eax
push 0
push esi
push ebp
call fcn.0046ab40
add esp, 0x10
test eax, eax
jne 0x46cef4
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x46cec2
jmp 0x46d18f
add byte [edi], 3
jmp 0x46d18f
test edx, edx
jne 0x46cf38
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xfc]
or dword [eax + 0x4c], ecx
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp dword [esp + 0x44], 0
jne 0x46cf52
cmp edx, 0xffffffff
jne 0x46cf6c
add al, 0x46
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp dword [esp + 0x44], 1
jne 0x46cf7f
cmp edx, 0xffffffff
jne 0x46cf7f
add al, 0x48
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp edx, 1
jne 0x46cf7f
add al, 0x4a
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
add al, 0x4c
mov byte [ebx], al
mov eax, dword [esp + 0x44]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
cmp edx, 0xffffffff
jne 0x46cf9d
xor edx, edx
mov dword [esp + 0x38], edx
mov eax, edx
sar eax, 8
mov byte [ebx + 3], al
mov byte [ebx + 4], dl
add ebx, 5
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp dword [esp + 0x44], 1
movzx ecx, byte [ebx - 1]
mov dword [esp + 0x18], ecx
jle 0x46cfda
mov edx, dword [esp + 0xfc]
mov eax, dword [edx + 0x4c]
or eax, ecx
or eax, dword [esp + 0x98]
mov dword [esp + 0x48], eax
test esi, esi
jne 0x46d013
cmp dword [esp + 0x38], esi
jge 0x46d013
mov eax, dword [esp + 0x2c]
push eax
inc edi
push edi
mov edi, dword [esp + 0x104]
push ebp
call fcn.0046b5b0
add esp, 0xc
test eax, eax
je 0x46d00f
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x10]
mov al, byte [ebp]
cmp al, 0x10
je 0x46d02b
cmp al, 0xf
je 0x46d02b
or eax, 0xffffffff
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
jmp 0x46d03b
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x38]
mov esi, ebx
mov dword [esp + 0x14], ebp
test ecx, ecx
je 0x46cf04
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
add eax, ebx
cmp dword [esp + 0x44], 0
jne 0x46d0a2
cmp ecx, 0xffffffff
jne 0x46d072
add al, 0x1f
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
cmp ecx, 1
jne 0x46d086
add al, 0x23
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
add al, 0x25
mov byte [ebp], al
mov eax, ecx
sar eax, 8
mov byte [ebp + 1], al
mov byte [ebp + 2], cl
add ebp, 3
mov dword [esp + 0x14], ebp
jmp 0x46d17e
cmp dword [esp + 0x44], 1
jne 0x46d0ea
cmp ecx, 0xffffffff
jne 0x46d0bd
add al, 0x21
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
mov dword [esp + 0x14], esi
cmp ecx, 1
je 0x46cf04
add al, 0x25
mov byte [esi], al
lea edx, [ecx - 1]
lea eax, [esi + 1]
sar edx, 8
dec cl
mov byte [eax], dl
mov byte [eax + 1], cl
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x46d17e
mov edx, dword [esp + 0x44]
add bl, 0x27
mov byte [ebp], bl
lea esi, [ebp + 1]
mov ebx, edx
sar ebx, 8
mov byte [esi], bl
mov byte [esi + 1], dl
add esi, 2
mov dword [esp + 0x14], esi
test ecx, ecx
jns 0x46d12e
mov cl, byte [esp + 0x18]
mov byte [esi], cl
mov ecx, dword [esp + 0x1c]
inc esi
test ecx, ecx
js 0x46d127
mov dl, byte [esp + 0x24]
mov byte [esi], cl
mov byte [esi + 1], dl
add esi, 2
add al, 0x1f
mov byte [esi], al
inc esi
jmp 0x46d17a
cmp ecx, edx
je 0x46d17e
mov esi, dword [esp + 0x14]
mov bl, byte [esp + 0x18]
mov byte [esi], bl
inc esi
cmp dword [esp + 0x1c], 0
jl 0x46d156
movzx ebx, byte [esp + 0x1c]
mov byte [esi], bl
movzx ebx, byte [esp + 0x24]
mov byte [esi + 1], bl
add esi, 2
sub ecx, edx
mov dword [esp + 0x38], ecx
cmp ecx, 1
jne 0x46d168
add al, 0x23
mov byte [esi], al
inc esi
jmp 0x46d17a
add al, 0x25
mov byte [esi], al
mov eax, ecx
sar eax, 8
mov byte [esi + 1], al
mov byte [esi + 2], cl
add esi, 3
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov ebx, eax
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x20], 0
je 0x46cf08
mov al, byte [ecx]
cmp al, 0x41
jne 0x46d1c6
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x46d1bb
cmp al, 0xf
je 0x46d1bb
xor eax, eax
lea ecx, [ecx + eax + 4]
jmp 0x46d1da
mov eax, 2
lea ecx, [ecx + eax + 4]
jmp 0x46d1da
cmp al, 0x27
je 0x46d1ce
cmp al, 0x34
jne 0x46d1de
movzx edx, al
movzx eax, byte [edx + 0x4968b0]
add ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x40], eax
test eax, eax
jle 0x46cf08
movzx eax, byte [ecx]
add eax, 0xffffffe1
cmp eax, 0x20
ja case.0x46d204.32
movzx edx, byte [eax + 0x46ed80]
jmp dword [edx*4 + 0x46ed4c]
mov byte [ecx], 0x28
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x29
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x2a
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x2b
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x42
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x43
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x44
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x45
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x35
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x36
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x37
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x38
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xfc]
push eax
push ecx
mov byte [ebx], 0
mov edx, dword [esp + 0x44]
push 3
push edx
call fcn.0046b460
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x50]
push eax
add eax, 3
push eax
call fcn.004777f0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add ecx, 3
mov byte [edx], 0x5d
mov byte [ebx + 3], 0x55
mov byte [ebx + 5], cl
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov edx, dword [esp + 0x58]
mov byte [edx + 1], al
mov eax, dword [esp + 0x58]
add esp, 0x1c
add ebx, 6
mov byte [eax + 2], cl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
jmp 0x46cf08
mov eax, dword [esi + 0x24]
inc edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x60], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 0x5f
mov dword [esp + 0x40], ecx
cmp al, 0x2a
jne 0x46d4d4
mov cl, byte [edi + 1]
mov ebp, dword [esi + 0xc]
lea edx, [edi + 1]
movzx esi, cl
test byte [esi + ebp], 2
mov dword [esp + 0xa8], edx
jne 0x46d354
cmp cl, 0x3a
jne 0x46d4d0
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], 0x496e10
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea ebx, [ebx]
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
test byte [ecx + ebp], 2
jne 0x46d370
mov ecx, edi
sub ecx, edx
cmp byte [edi], 0x3a
mov dword [esp + 0x40], ecx
jne 0x46d3b0
inc edi
mov edx, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx esi, al
test byte [esi + ebp], 6
jne 0x46d3a5
cmp al, 0x5f
jne 0x46d3a8
inc edi
jmp 0x46d392
mov eax, edi
sub eax, edx
mov dword [esp + 0x1c], eax
cmp byte [edi], 0x29
jne 0x46e935
xor edi, edi
mov esi, 0x496e40
cmp ecx, dword [esi]
jne 0x46d3e2
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
push edx
push eax
push ecx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
je 0x46d406
mov edx, dword [esi]
mov eax, dword [esp + 0x34]
add esi, 0xc
lea ecx, [eax + edx + 1]
inc edi
mov dword [esp + 0x34], ecx
cmp esi, 0x496eac
jge 0x46d4a9
mov ecx, dword [esp + 0x40]
jmp 0x46d3c0
lea esi, [edi + edi*2]
add esi, esi
add esi, esi
cmp dword [esi + 0x496e44], 0x74
jne 0x46d448
mov eax, dword [esp + 0xfc]
mov dword [eax + 0x50], 1
mov eax, dword [eax + 0x20]
test eax, eax
je 0x46d448
jmp 0x46d430
mov byte [ebx], 0x75
mov dl, byte [eax + 5]
mov byte [ebx + 1], dl
mov cl, byte [eax + 4]
mov byte [ebx + 2], cl
mov eax, dword [eax]
add ebx, 3
test eax, eax
jne 0x46d430
cmp dword [esp + 0x1c], 0
jne 0x46d466
cmp dword [esi + 0x496e44], 0
jl 0x46e958
mov dl, byte [esi + 0x496e44]
mov byte [ebx], dl
jmp 0x46d49b
cmp dword [esi + 0x496e48], 0
jl 0x46e96a
mov al, byte [esi + 0x496e48]
mov ecx, dword [esp + 0x20]
mov byte [ebx], al
mov eax, dword [esp + 0x1c]
push eax
mov byte [ebx + 1], al
push ecx
add ebx, 2
push ebx
call fcn.0047b470
add esp, 0xc
add ebx, dword [esp + 0x1c]
mov byte [ebx], 0
inc ebx
mov dword [esp + 0x14], ebx
cmp edi, 9
jl 0x46c0d2
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3c
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xfc]
cmp al, 0x3f
jne 0x46dc95
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x46d500.34
movzx edx, byte [ecx + 0x46ede0]
jmp dword [edx*4 + 0x46eda4]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x46d521
cmp al, 0x29
je 0x46d544
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
jne 0x46d512
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x12
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp byte [edi], 0
je 0x46d521
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov dword [esp + 0x40], 1
jmp case.0x46d500.58
cmp byte [edi + 1], 0x3f
mov dword [esp + 0x18], 0x60
jne 0x46d596
mov al, byte [edi + 2]
cmp al, 0x3d
je 0x46e03b
cmp al, 0x21
je 0x46e03b
cmp al, 0x3c
je 0x46e03b
mov byte [ebx + 3], 0x64
mov edi, dword [esp + 0x10]
mov al, byte [edi + 1]
or ebp, 0xffffffff
mov dword [esp + 0x1c], 3
mov dword [esp + 0x34], ebp
cmp al, 0x52
jne 0x46d5cf
cmp byte [edi + 2], 0x26
lea ecx, [edi + 2]
jne 0x46d5cf
mov dword [esp + 0x10], ecx
mov byte [ebx + 3], 0x66
mov edi, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
jmp 0x46d611
cmp al, 0x3c
jne 0x46d5e2
inc edi
mov dword [esp + 0x20], 0x3e
mov dword [esp + 0x10], edi
jmp 0x46d611
cmp al, 0x27
jne 0x46d5f5
inc edi
mov dword [esp + 0x20], 0x27
mov dword [esp + 0x10], edi
jmp 0x46d611
mov dword [esp + 0x20], 0
cmp al, 0x2d
je 0x46d605
cmp al, 0x2b
jne 0x46d611
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x34], eax
movzx ecx, byte [edi + 1]
mov edx, dword [esi + 0xc]
inc edi
test byte [ecx + edx], 0x10
je 0x46e97c
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [edx + eax], 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edi
je 0x46d66a
lea ebx, [ebx]
test ecx, ecx
js 0x46d658
test byte [eax + 0x4979a8], 4
je 0x46d656
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
jmp 0x46d658
mov ecx, ebp
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [edx + eax], 0x10
jne 0x46d640
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x20]
mov ebp, edi
sub ebp, dword [esp + 0x24]
test eax, eax
jle 0x46d688
movzx edx, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp edx, eax
jne 0x46e99f
mov al, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp al, 0x29
jne 0x46e99f
cmp dword [esp + 0x100], 0
jne 0x46e03b
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x46d6e8
test ecx, ecx
jle 0x46e9c3
cmp eax, 0x2d
jne 0x46d6c4
mov edx, dword [esi + 0x34]
sub edx, ecx
lea ecx, [edx + 1]
jmp 0x46d6c7
add ecx, dword [esi + 0x34]
test ecx, ecx
jle 0x46e2c0
cmp ecx, dword [esi + 0x38]
jg 0x46e2c0
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
jmp 0x46e03b
mov edi, dword [esp + 0xfc]
cmp dword [edi + 0x2c], 0
mov esi, dword [edi + 0x28]
mov dword [esp + 0x28], 0
jle 0x46d727
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
je 0x46d727
mov eax, dword [esp + 0x28]
add esi, dword [edi + 0x30]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [edi + 0x2c]
jl 0x46d700
mov eax, dword [esp + 0x28]
cmp eax, dword [edi + 0x2c]
jge 0x46d751
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov edx, eax
sar edx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
shr eax, 3
and eax, 1
push eax
push ebp
push esi
push edi
call fcn.0046a430
add esp, 0x10
test eax, eax
jle 0x46d784
mov ecx, eax
sar ecx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp dword [esp + 0x20], 0
jne 0x46e9e6
cmp byte [esi], 0x52
jne 0x46d7dc
xor eax, eax
lea ecx, [eax + 1]
cmp ebp, ecx
jle 0x46d7c1
lea ecx, [ecx]
movzx edx, byte [ecx + esi]
test byte [edx + 0x4979a8], 4
je 0x46e9f8
inc ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
cmp ecx, ebp
jl 0x46d7a0
test eax, eax
jne 0x46d7c6
mov eax, 0xffff
mov ecx, eax
sar ecx, 8
mov byte [ebx + 3], 0x66
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp ebp, 6
jne 0x46d807
push ebp
push 0x497ad8
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46d807
mov byte [ebx + 3], 0x68
mov dword [esp + 0x1c], 1
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x46ea0a
cmp eax, dword [edi + 0x38]
jg 0x46ea0a
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov dword [esp + 0x18], 0x58
jmp 0x46e036
inc edi
mov dword [esp + 0x10], edi
cmp byte [edi], 0x29
jne 0x46d855
mov byte [ebx], 0x73
mov dword [esp + 0x24], 0
jmp 0x46c0cd
mov dword [esp + 0x18], 0x59
jmp 0x46e03b
mov cl, byte [edi + 1]
cmp cl, 0x21
je 0x46d937
cmp cl, 0x3d
je 0x46d927
mov edx, dword [esi + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
je 0x46ea22
mov ebp, dword [esi + 0xc]
xor edx, edx
cmp al, 0x3c
setne dl
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov ecx, edi
dec edx
and edx, 0x17
add edx, 0x27
test byte [eax + ebp], 0x10
mov dword [esp + 0x24], ecx
je 0x46d8be
mov eax, ebp
mov edi, edi
inc edi
mov dword [esp + 0x10], edi
movzx ebp, byte [edi]
test byte [eax + ebp], 0x10
jne 0x46d8b0
mov eax, edi
sub eax, ecx
cmp dword [esp + 0x100], 0
mov dword [esp + 0x34], eax
je 0x46da99
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x46ea8c
cmp dword [esi + 0x2c], 0x2710
jge 0x46eaaf
lea ecx, [eax + 3]
cmp ecx, dword [esi + 0x30]
jle 0x46dc4d
mov dword [esi + 0x30], ecx
cmp eax, 0x20
jle 0x46dc4d
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x30
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov dword [esp + 0x18], 0x5a
add edi, 2
jmp 0x46e037
mov dword [esp + 0x18], 0x5b
add edi, 2
jmp 0x46e037
mov dword [esp + 0x18], 0x5d
jmp 0x46e036
mov byte [ebx], 0x53
mov edi, dword [esp + 0x10]
mov ebp, edi
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
xor edx, edx
xor eax, eax
test byte [ecx + 0x4979a8], 4
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa4], 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x6c], ebp
je 0x46d9ac
lea esp, [esp]
inc edi
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
test byte [ecx + 0x4979a8], 4
jne 0x46d990
mov dword [esp + 0x34], edx
mov cl, byte [edi]
cmp cl, 0x29
je 0x46da04
test cl, cl
je 0x46ea46
cmp cl, 0x3a
je 0x46d9c6
mov dword [esp + 0x34], eax
mov edi, ebp
lea ecx, [edi + 1]
mov dword [esp + 0x6c], ecx
lea ecx, [ecx]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x46ea46
cmp al, 0x29
jne 0x46d9d0
test al, al
je 0x46ea46
sub edi, ecx
push edi
push ecx
call dword [0x4a2bb8]
mov edi, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x46ea46
mov ecx, dword [esp + 0x34]
cmp ecx, 0xff
jg 0x46ea69
mov byte [ebx + 1], cl
mov dword [ebx + 2], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esi + 0x18]
mov dword [esp + 0x24], 0
inc eax
sar eax, 8
mov byte [ebx + 6], al
mov cl, byte [esp + 0x10]
sub cl, byte [esi + 0x18]
mov word [ebx + 8], 0
inc cl
mov byte [ebx + 7], cl
add ebx, 0xa
jmp 0x46c0ce
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
cmp al, 0x3d
je 0x46da84
cmp al, 0x3e
je 0x46da84
cmp al, 0x3c
je case.0x46d500.39
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x29
xor eax, eax
pop ebx
add esp, 0xcc
ret
xor edx, edx
cmp al, 0x3e
sete dl
mov esi, 0x29
mov dword [esp + 0x1c], edx
jmp 0x46e34c
mov eax, dword [esp + 0xfc]
mov ebp, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
jle 0x46dbbb
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
lea ecx, [ebp + 2]
cmp edx, 4
jb 0x46dae4
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x46dae8
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x46dad0
test edx, edx
je 0x46db33
movzx ebp, byte [ecx]
movzx eax, byte [esi]
sub eax, ebp
jne 0x46db23
cmp edx, 1
jbe 0x46db2f
movzx eax, byte [esi + 1]
movzx ebp, byte [ecx + 1]
sub eax, ebp
jne 0x46db23
cmp edx, 2
jbe 0x46db2f
movzx eax, byte [esi + 2]
movzx ebp, byte [ecx + 2]
sub eax, ebp
jne 0x46db23
cmp edx, 3
jbe 0x46db2f
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov ebp, dword [esp + 0x20]
sar eax, 0x1f
or eax, 1
jmp 0x46db35
mov ebp, dword [esp + 0x20]
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
test eax, eax
jne 0x46db7c
mov eax, dword [esp + 0x34]
cmp byte [eax + ebp + 2], 0
jne 0x46db99
movzx eax, byte [ebp]
movzx ecx, byte [ebp + 1]
shl eax, 8
or ecx, eax
mov eax, dword [edx + 0x34]
inc eax
cmp ecx, eax
je 0x46db72
test dword [esp + 0x2c], 0x80000
je 0x46ead2
mov dword [esp + 0x14], 1
jmp 0x46db7e
js 0x46db99
mov eax, dword [esp + 0x28]
add ebp, dword [edx + 0x30]
inc eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
cmp eax, dword [edx + 0x2c]
jl 0x46dac0
jmp 0x46dbb4
mov edx, dword [edx + 0x30]
sub ecx, dword [esp + 0x28]
imul ecx, edx
push ecx
add edx, ebp
push ebp
push edx
call fcn.004777f0
mov edi, dword [esp + 0x1c]
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x46dc0e
mov ecx, dword [esp + 0xfc]
mov eax, dword [ecx + 0x28]
xor edx, edx
mov dword [esp + 0x28], edx
cmp dword [ecx + 0x2c], edx
jle 0x46dc0e
cmp eax, ebp
je 0x46dbf9
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0xfc]
mov esi, dword [ecx + 0x34]
inc esi
cmp edx, esi
je 0x46eaf5
mov edx, dword [esp + 0x28]
jmp 0x46dc01
mov ecx, dword [esp + 0xfc]
dec edx
add eax, dword [ecx + 0x30]
inc edx
mov dword [esp + 0x28], edx
cmp edx, dword [ecx + 0x2c]
jl 0x46dbd0
mov eax, dword [esp + 0xfc]
mov edx, dword [eax + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
inc edx
sar edx, 8
mov byte [ebp], dl
mov al, byte [eax + 0x34]
push esi
push ecx
lea edx, [ebp + 2]
inc al
push edx
mov byte [ebp + 1], al
call fcn.0047b470
mov byte [esi + ebp + 2], 0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x108]
add esp, 0xc
inc dword [esi + 0x2c]
inc edi
mov dword [esp + 0x10], edi
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
sar eax, 8
mov byte [ebx + 3], al
mov cl, byte [esi + 0x34]
mov byte [ebx + 4], cl
mov dword [esp + 0x1c], 2
jmp 0x46e03b
mov esi, 0x29
mov dword [esp + 0x1c], 1
jmp 0x46e34c
inc edi
mov dword [esp + 0x10], edi
mov esi, 0x29
jmp 0x46de6d
test edx, 0x1000
je 0x46dc55
mov dword [esp + 0x18], 0x5e
jmp 0x46e03b
mov edx, dword [esp + 0x2c]
push 0
push edx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0xf4]
lea eax, [esp + 0x18]
push edi
push eax
mov eax, dword [esi + 0x34]
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
jne 0x46d4b6
xor ebp, ebp
cmp eax, ebp
jge 0x46be9c
mov ecx, eax
neg ecx
cmp ecx, 0x1a
jne 0x46dd32
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46dd13
cmp byte [edi + 2], 0x45
jne 0x46dd13
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
add edi, 2
inc edi
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x50], 1
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x19
je 0x46c0d2
mov edx, dword [esp + 0x30]
cmp edx, 0xfffffffe
jne 0x46dd55
cmp ecx, 5
jle 0x46dd55
cmp ecx, 0x17
jge 0x46dd55
or edx, 0xffffffff
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
cmp ecx, 0x1b
jne 0x46e307
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x24]
inc edi
xor edx, edx
mov dword [esp + 0x10], edi
cmp byte [edi], 0x3c
mov al, byte [edi + 1]
setne dl
mov dword [esp + 0x58], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x40], ebp
lea esi, [edx - 1]
and esi, 0x17
add esi, 0x27
mov dword [esp + 0x20], esi
cmp al, 0x2b
je 0x46de1e
cmp al, 0x2d
je 0x46de1e
mov al, byte [edi + 1]
lea ecx, [edi + 1]
mov ebp, 1
test al, al
je 0x46dde2
movzx eax, al
cmp eax, esi
je 0x46dde2
mov esi, dword [esp + 0xfc]
mov esi, dword [esi + 0xc]
mov al, byte [eax + esi]
test al, 4
jne 0x46ddd2
xor ebp, ebp
mov esi, dword [esp + 0x20]
test al, 0x10
je 0x46dde2
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46ddb8
movzx eax, byte [ecx]
cmp eax, esi
je 0x46de0d
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
test ebp, ebp
jne 0x46de68
mov dword [esp + 0x1c], 1
jmp 0x46e34c
movzx ebp, byte [edi + 2]
lea eax, [edi + 2]
mov cl, 4
test byte [ebp + 0x4979a8], cl
je 0x46de3d
nop
movzx ebp, byte [eax + 1]
inc eax
test byte [ebp + 0x4979a8], cl
jne 0x46de30
movzx eax, byte [eax]
cmp eax, esi
je 0x46de68
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx edx, al
cmp edx, 0x2b
jne 0x46deaf
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [eax + 0x4979a8], 4
jne 0x46e261
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3f
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp edx, 0x2d
jne 0x46e261
movzx ecx, byte [edi + 1]
test byte [ecx + 0x4979a8], 4
jne 0x46e25c
mov esi, dword [esp + 0xfc]
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], edx
lea ecx, [esp + 0x34]
cmp al, 0x29
je 0x46df4b
lea edx, [ebp + 0x10]
cmp al, 0x3a
je 0x46df43
movzx eax, al
inc edi
sub eax, 0x2d
mov dword [esp + 0x10], edi
cmp eax, 0x4b
ja case.0x46df06.46
movzx eax, byte [eax + 0x46ee60]
jmp dword [eax*4 + 0x46ee3c]
lea ecx, [esp + 0x20]
jmp 0x46df3d
or dword [ecx], 0x80000
or dword [esi + 0x48], edx
jmp 0x46df3d
or dword [ecx], 1
jmp 0x46df3d
or dword [ecx], 2
jmp 0x46df3d
or dword [ecx], 4
jmp 0x46df3d
or dword [ecx], 8
jmp 0x46df3d
or dword [ecx], 0x200
jmp 0x46df3d
or dword [ecx], 0x40
mov al, byte [edi]
cmp al, 0x29
jne 0x46dee7
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
or edx, esi
not ebp
and edx, ebp
cmp byte [edi], 0x29
mov eax, edx
mov dword [esp + 0x60], eax
jne 0x46e027
mov edx, dword [esp + 0xfc]
mov ecx, dword [edx + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x46dfb4
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x46df85
cmp dword [ecx], 6
jne 0x46dfb4
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x44], eax
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x46bd0a
mov edx, eax
xor edx, esi
test dl, 7
je 0x46dfd3
mov cl, al
mov byte [ebx], 0x19
and cl, 7
mov byte [ebx + 1], cl
mov edi, dword [esp + 0x10]
add ebx, 2
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xb8]
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [esp + 0xac], ecx
xor ecx, 1
mov dword [esp + 0xb4], ecx
mov ecx, eax
and ecx, 1
shl ecx, 8
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0x5e
inc edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 0x5d
setl cl
mov byte [ebx], al
mov ebp, dword [esi + 0x4c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x64], 0
dec ecx
and ecx, ebx
mov dword [esp + 0x24], ecx
cmp eax, 0x5a
je 0x46e06d
cmp eax, 0x5b
je 0x46e06d
xor eax, eax
jmp 0x46e072
mov eax, 1
mov edi, dword [esp + 0x100]
mov edx, edi
neg edx
sbb edx, edx
lea ecx, [esp + 0x64]
and edx, ecx
push edx
mov edx, dword [esp + 0xfc]
push esi
push edx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
push eax
mov eax, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x64]
push edx
and eax, 7
push eax
push ecx
call fcn.0046eeb0
add esp, 0x34
test eax, eax
je 0x46d4b6
mov edx, dword [esp + 0x18]
cmp edx, 0x60
jne 0x46e119
test edi, edi
jne 0x46e119
mov eax, ebx
xor ecx, ecx
lea ecx, [ecx]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 2]
shl esi, 8
or esi, edi
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x46e0f0
cmp byte [ebx + 3], 0x68
jne 0x46e176
cmp ecx, 1
jg 0x46eb3c
mov edx, 0x68
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x29
jne 0x46eb60
mov esi, dword [esp + 0x100]
test esi, esi
je 0x46e199
mov eax, dword [esi]
mov ecx, dword [esp + 0x64]
mov edx, 0x7fffffeb
sub edx, eax
lea ebp, [ecx - 6]
cmp edx, ebp
jl 0x46e912
lea eax, [eax + ecx - 6]
mov dword [esi], eax
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
add ebx, 6
jmp 0x46c0ce
cmp ecx, 2
jg 0x46eb4e
cmp ecx, 1
jne 0x46e119
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], eax
jmp 0x46e127
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp edx, 0x68
je 0x46e241
mov esi, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov dword [esp + 0xa0], 0
cmp edx, 0x5d
jl 0x46e234
cmp esi, 0xfffffffe
jne 0x46e1fe
test eax, eax
js 0x46e1ec
mov dword [esp + 0x30], eax
mov dword [esp + 0xa0], 1
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
test eax, eax
js 0x46e211
test ecx, ecx
jns 0x46e215
or eax, ebp
mov ecx, eax
mov dword [esp + 0x94], ecx
test ecx, ecx
js 0x46e241
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp edx, 0x58
jne 0x46e241
test ecx, ecx
js 0x46e241
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [eax + 0x4979a8], 4
mov dword [esp + 0x14], ecx
je 0x46e28f
inc edi
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [eax + 0x4979a8], 4
jne 0x46e273
mov dword [esp + 0x14], ecx
movzx eax, byte [edi]
cmp eax, esi
jne 0x46eb83
cmp edx, 0x2d
jne 0x46e2e3
test ecx, ecx
je 0x46e9c3
mov edx, dword [esp + 0xfc]
mov eax, dword [edx + 0x34]
sub eax, ecx
inc eax
mov dword [esp + 0x14], eax
test eax, eax
jg 0x46e443
mov edx, dword [esp + 0xec]
mov dword [edx], 0xf
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp edx, 0x2b
jne 0x46e443
test ecx, ecx
je 0x46eba6
mov eax, dword [esp + 0xfc]
add ecx, dword [eax + 0x34]
mov dword [esp + 0x14], ecx
jmp 0x46e443
cmp ecx, 0x1c
jne 0x46e5ba
mov dl, byte [edi + 1]
cmp dl, 0x3c
je 0x46e326
cmp dl, 0x27
je 0x46e326
cmp dl, 0x7b
jne 0x46e5ba
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x1c], ebp
cmp al, 0x3c
jne 0x46e33c
mov esi, 0x3e
jmp 0x46e34c
xor ecx, ecx
cmp al, 0x27
setne cl
lea esi, [ecx - 1]
and esi, 0xffffffaa
add esi, 0x7d
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0xc]
inc edi
mov dword [esp + 0x10], edi
movzx edx, byte [edi]
test byte [edx + ecx], 0x10
mov dword [esp + 0x24], edi
je 0x46e37e
mov eax, ecx
lea ebx, [ebx]
inc edi
mov dword [esp + 0x10], edi
movzx edx, byte [edi]
test byte [edx + eax], 0x10
jne 0x46e370
mov ebp, edi
sub ebp, dword [esp + 0x24]
cmp dword [esp + 0x100], 0
je 0x46e3b7
test ebp, ebp
je 0x46ebc9
movzx eax, byte [edi]
cmp eax, esi
jne 0x46ebec
cmp ebp, 0x20
jg 0x46d904
mov dword [esp + 0x14], 0
jmp 0x46e438
mov eax, dword [esp + 0xfc]
mov esi, dword [eax + 0x28]
xor edi, edi
cmp dword [eax + 0x2c], edi
jle 0x46e3f4
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46e3e4
cmp byte [esi + ebp + 2], al
je 0x46e3f4
mov eax, dword [esp + 0xfc]
add esi, dword [eax + 0x30]
inc edi
cmp edi, dword [eax + 0x2c]
jl 0x46e3c8
mov eax, dword [esp + 0xfc]
cmp edi, dword [eax + 0x2c]
jge 0x46e412
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov dword [esp + 0x14], eax
jmp 0x46e438
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
shr edx, 3
and edx, 1
push edx
push ebp
push ecx
push eax
call fcn.0046a430
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jle 0x46e9f8
cmp dword [esp + 0x1c], 0
je 0x46e5ce
cmp dword [esp + 0x100], 0
mov edi, dword [esp + 0xfc]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
jne 0x46e55b
cmp dword [esp + 0x14], 0
mov byte [ebx], 0
je 0x46e47d
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x14]
call fcn.0046aa60
mov dword [esp + 0x20], eax
test eax, eax
jne 0x46e529
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb0]
push eax
shr esi, 3
and esi, 1
push esi
push ecx
push 0
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x2c]
push edi
push edx
call fcn.0046a0b0
add esp, 0x18
test eax, eax
jg 0x46e4f4
nop
mov ebp, dword [esp + 0x1c]
mov cl, byte [ebp]
inc ebp
mov dword [esp + 0x1c], ebp
test cl, cl
je 0x46e4f2
mov eax, dword [esp + 0x14]
lea edx, [esp + 0xb0]
push edx
push esi
push eax
push 0
lea ecx, [esp + 0x2c]
push edi
push ecx
call fcn.0046a0b0
add esp, 0x18
test eax, eax
jle 0x46e4c0
test eax, eax
js 0x46ec0f
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x14]
add edx, eax
mov ecx, ebx
sub ecx, eax
add ecx, 4
sar ecx, 8
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0x24]
mov byte [edx], cl
mov ecx, dword [edi + 0x24]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x24], 2
jmp 0x46e557
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
jne 0x46e55b
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x20]
push edi
push edx
push ebx
push eax
call fcn.0046af70
add esp, 0x10
test eax, eax
jne 0x46ec21
mov eax, dword [esp + 0x20]
mov dword [ebx], 0x5206005d
mov edx, eax
sub edx, dword [edi + 0x14]
mov cl, 6
sar edx, 8
mov byte [ebx + 4], dl
sub al, byte [edi + 0x14]
add ebx, 9
cmp dword [esp + 0x30], 0xfffffffe
mov byte [ebx - 4], al
mov word [ebx - 3], 0x55
mov byte [ebx - 1], cl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x64], 9
jne 0x46c0d6
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x30], 0xffffffff
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x23
jl 0x46e670
mov ecx, 0xffffffdd
sub ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x30], 0xfffffffe
jne 0x46e5dd
mov dword [esp + 0x30], 0xffffffff
mov ecx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x51
mov byte [ebx + 1], al
mov dword [esp + 0x24], ebx
mov byte [ebx + 2], cl
add ebx, 3
mov dword [esp + 0x14], ebx
mov eax, 1
cmp ecx, 0x20
jge 0x46e606
shl eax, cl
mov edx, dword [esp + 0xfc]
or dword [edx + 0x40], eax
cmp ecx, dword [edx + 0x3c]
jle 0x46e618
mov dword [edx + 0x3c], ecx
mov eax, dword [edx + 0x20]
test eax, eax
je 0x46c0d2
movzx edx, word [eax + 4]
cmp edx, ecx
je 0x46e64c
mov eax, dword [eax]
test eax, eax
jne 0x46e623
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov ecx, 1
mov word [eax + 6], cx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x16
je 0x46ec33
cmp ecx, 0xf
je 0x46ec33
cmp ecx, 0x10
je 0x46ec33
cmp ecx, 5
jle 0x46e699
mov dword [esp + 0x24], ebx
cmp ecx, 0x17
jl 0x46e69d
mov dword [esp + 0x24], ebp
neg al
mov byte [ebx], al
jmp 0x46c0cd
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp ecx, 0xfffffffe
jne 0x46e6ef
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
movzx eax, al
or eax, dword [esp + 0x98]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x5c]
inc edi
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x30], eax
xor edx, edx
jmp 0x46bd0a
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
movzx ecx, byte [ebx - 1]
or ecx, dword [edx + 0x4c]
inc edi
or ecx, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
xor edx, edx
jmp 0x46bd0a
mov edx, dword [esp + 0xec]
mov dword [edx], 0x34
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x14
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x34
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0x30]
mov dword [edx], eax
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x48]
mov dword [edx], eax
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
mov dword [edx], ebx
mov edx, dword [esp + 0x100]
mov dword [eax], edi
cmp edx, ecx
je 0x46e805
mov eax, dword [edx]
mov ecx, dword [esp + 0x90]
mov esi, ebx
mov ebp, 0x7fffffeb
sub esi, ecx
sub ebp, eax
cmp ebp, esi
jge 0x46e7ff
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x14
xor eax, eax
pop ebx
add esp, 0xcc
ret
sub eax, ecx
add eax, ebx
mov dword [edx], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
xor eax, eax
cmp byte [edi + 1], 0x3a
mov dword [edx], edi
setne al
pop edi
pop esi
pop ebp
pop ebx
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [ecx], eax
xor eax, eax
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x1f
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1e
jmp 0x46d4b6
mov ecx, edi
mov dword [ecx], 7
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 8
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 6
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 9
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x37
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x14
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3c
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov ecx, dword [esp + 0xec]
mov dword [ecx], 0x42
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 0x3b
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 0x1c
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x1a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0xf
jmp 0x46d4b6
mov ecx, dword [esp + 0xec]
mov dword [ecx], 0xf
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [edx], eax
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
inc edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x18
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x27
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x26
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x31
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2b
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x41
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xc
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x36
jmp 0x46d4b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1b
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xe
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x1d
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3e
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x2a
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0xf
jmp 0x46d4b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x28
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2d
xor eax, eax
pop ebx
add esp, 0xcc
ret