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

Disassembly:
sub esp, 0xfc
mov eax, dword [esp + 0x100]
mov eax, dword [eax]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x1c], eax
shr eax, 0xb
and eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
shr eax, 9
and eax, 1
mov dword [esp + 0xb8], eax
xor eax, 1
push ebx
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0xc0], eax
mov eax, 0xfffffffe
push ebp
mov ebp, dword [esp + 0x124]
xor edx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
push esi
push edi
mov edi, dword [ecx]
xor esi, esi
xor ecx, ecx
and eax, 1
shl eax, 8
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xc0], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x5c], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x20], eax
cmp eax, edx
jne 0x473ce6
cmp dword [esp + 0x68], edx
je 0x473ce6
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x130], edx
je 0x473dac
mov ecx, dword [ebp + 0x10]
add ecx, 0xf9c
cmp ebx, ecx
ja 0x4771fb
mov eax, dword [esp + 0xa0]
cmp ebx, eax
jae 0x473d15
mov dword [esp + 0x14], eax
mov ebx, eax
mov edx, dword [esp + 0x130]
mov eax, dword [edx]
mov ecx, ebx
sub ecx, dword [esp + 0xa0]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x47721e
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x130]
add eax, ebx
xor edx, edx
mov dword [ecx], eax
cmp esi, edx
je 0x473d92
cmp esi, dword [esp + 0xb0]
jbe 0x473d9f
mov edi, dword [esp + 0xb0]
mov edx, ebx
sub edx, esi
push edx
push esi
push edi
call fcn.00486da0
mov ecx, dword [esp + 0x78]
mov eax, edi
sub eax, esi
add ebx, eax
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x14], ebx
xor edx, edx
mov dword [esp + 0xa0], ebx
jmp 0x473dbd
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xa0], ebx
jmp 0x473dbd
mov eax, dword [ebp + 0x10]
add eax, 0xf9c
cmp dword [ebp + 0x24], eax
ja 0x477241
cmp dword [esp + 0x5c], edx
je 0x473f4c
cmp dword [esp + 0x20], edx
je 0x473f4c
cmp dword [esp + 0x20], 0x5c
jne 0x473def
cmp byte [edi + 1], 0x45
jne 0x473def
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x5c], edx
inc edi
xor edx, edx
jmp 0x473cbe
cmp ecx, edx
je 0x473e25
cmp dword [esp + 0x130], edx
jne 0x473e21
movzx edx, byte [ecx + 6]
movzx eax, byte [ecx + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
sub eax, dword [ebp + 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 + 0x6c], edx
test dword [esp + 0x2c], 0x4000
je case.0x4740ac.1
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
mov dword [ebx + 2], edx
mov eax, edi
mov ecx, eax
sub ecx, dword [ebp + 0x18]
mov dword [esp + 0x6c], ebx
sar ecx, 8
mov byte [ebx + 6], cl
sub al, byte [ebp + 0x18]
mov word [ebx + 8], 0
mov byte [ebx + 7], al
mov edi, dword [esp + 0x10]
add ebx, 0xa
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov ebp, 1
mov byte [esp + 0xa8], al
je 0x473ea8
cmp eax, 0xc0
jl 0x473ea8
mov cl, byte [edi + 1]
inc edi
and cl, 0xc0
cmp cl, 0x80
jne 0x473ea8
jmp 0x473e90
mov dword [esp + 0x10], edi
mov dl, byte [edi]
mov al, byte [edi + 1]
inc edi
mov byte [esp + ebp + 0xa8], dl
and al, 0xc0
inc ebp
cmp al, 0x80
je 0x473e90
mov cl, byte [esp + 0x2c]
and cl, 1
or cl, 0x1c
mov dword [esp + 0x18], ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x14], ebx
test ebp, ebp
jle 0x473ed9
push ebp
lea edx, [esp + 0xac]
push edx
push ebx
call fcn.00489760
add esp, 0xc
add ebx, ebp
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0xa8]
cmp cl, 0xd
je 0x473eea
cmp cl, 0xa
jne 0x473ef5
mov eax, dword [esp + 0x12c]
or dword [eax + 0x48], 0x20
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x47719c
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x40], eax
cmp ebp, 1
je 0x477160
cmp dword [esp + 0x74], 0
je 0x477160
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
or eax, 0xffffffff
inc edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], eax
xor edx, edx
jmp 0x473cbe
mov eax, dword [esp + 0x20]
cmp eax, 0x2a
je 0x473fc9
cmp eax, 0x2b
je 0x473fc9
cmp eax, 0x3f
je 0x473fc9
cmp eax, 0x7b
jne 0x473f70
lea eax, [edi + 1]
call fcn.00471750
test eax, eax
jne 0x473fc9
mov ecx, dword [esp + 0x6c]
xor edx, edx
mov dword [esp + 0x24], edx
cmp ecx, edx
je 0x473fd3
mov eax, dword [esp + 0xc0]
mov edx, eax
dec eax
mov dword [esp + 0xc0], eax
test edx, edx
jg 0x473fd1
xor edx, edx
cmp dword [esp + 0x130], edx
jne 0x473fc3
movzx edx, byte [ecx + 6]
movzx eax, byte [ecx + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
sub eax, dword [ebp + 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 + 0x6c], edx
jmp 0x473fd3
mov dword [esp + 0x24], 1
xor edx, edx
test byte [esp + 0x2c], 8
je 0x474056
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
test byte [ecx + eax], 1
jne 0x475068
cmp ecx, 0x23
jne 0x474054
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x47404c
jmp 0x474000
mov ecx, dword [ebp + 0x58]
test ecx, ecx
je 0x4740b3
mov eax, dword [ebp + 0x1c]
cmp edi, eax
jae 0x4740dd
mov ebx, dword [esp + 0x34]
lea edx, [ebp + 0x5c]
push edx
push eax
push ecx
call fcn.00484b80
mov esi, dword [esp + 0x24]
add esp, 0xc
test eax, eax
je 0x4740d9
mov ecx, dword [ebp + 0x5c]
mov ebx, dword [esp + 0x14]
lea edi, [edi + ecx - 1]
mov dword [esp + 0x10], edi
cmp byte [edi], 0
jne 0x475068
mov dword [esp + 0x20], 0
xor edx, edx
test dword [esp + 0x2c], 0x4000
je 0x474098
cmp dword [esp + 0x24], edx
jne 0x474098
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
mov dword [ebx + 2], edx
mov eax, edi
mov ecx, eax
sub ecx, dword [ebp + 0x18]
mov dword [esp + 0x6c], ebx
sar ecx, 8
mov byte [ebx + 6], cl
sub al, byte [ebp + 0x18]
mov word [ebx + 8], 0
mov byte [ebx + 7], al
mov edi, dword [esp + 0x10]
add ebx, 0xa
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x20]
cmp eax, 0x7c
ja case.0x4740ac.1
movzx eax, byte [eax + 0x477788]
jmp dword [eax*4 + 0x477754]
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x1c]
sub edx, ecx
cmp edi, edx
ja 0x4740dd
cmp al, byte [ebp + 0x60]
jne 0x4740dd
cmp ecx, 1
je 0x474034
mov al, byte [edi + 1]
cmp al, byte [ebp + 0x61]
je 0x474034
mov ebx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
jne 0x474000
jmp 0x47404c
test byte [esp + 0x2c], 2
je 0x474107
cmp dword [esp + 0x38], 0xfffffffe
jne 0x474107
mov dword [esp + 0x38], 0xffffffff
mov ecx, dword [esp + 0x6c]
mov byte [ebx], 0x1a
mov edi, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x18], edx
mov esi, edx
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
mov ecx, dword [esp + 0x6c]
mov byte [ebx], 0x1b
mov edi, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x18], edx
mov esi, edx
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x474153
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
shr edx, 2
and dl, 1
or dl, 0xc
mov byte [ebx], dl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
test dword [ebp + 0x44], 0x2000000
je case.0x4740ac.1
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x40
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov al, byte [edi + 1]
mov dword [esp + 0x18], ebx
cmp al, 0x3a
je 0x4741ce
cmp al, 0x2e
je 0x4741ce
cmp al, 0x3d
jne 0x4741e5
lea eax, [esp + 0x7c]
push eax
mov eax, edi
call fcn.00472d50
add esp, 4
test eax, eax
jne 0x4772cd
xor esi, esi
mov dword [esp + 0x24], esi
jmp 0x4741f0
inc edi
mov dword [esp + 0x10], edi
movzx ebx, byte [edi]
cmp ebx, 0x5c
jne 0x474220
inc edi
cmp byte [edi], 0x45
je 0x4741f0
push 3
push 0x4b759c
push edi
call fcn.00489cb1
mov edi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x47427f
add edi, 3
jmp 0x4741f0
test esi, esi
jne 0x47422e
cmp ebx, 0x5e
jne 0x47422e
lea esi, [ebx - 0x5d]
jmp 0x4741e7
cmp ebx, 0x5d
jne 0x47427f
test dword [ebp + 0x44], 0x2000000
je 0x47427f
mov eax, dword [esp + 0x14]
mov ecx, esi
neg ecx
sbb cl, cl
and cl, 0x9a
add cl, 0x73
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x474263
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
mov ebp, dword [esp + 0x14]
xor eax, eax
add ebp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x78], ebp
cmp ebx, eax
je 0x477370
cmp dword [esp + 0x34], 0
je 0x474339
cmp ebx, 0x7f
jle 0x474339
movzx ebx, byte [edi]
cmp ebx, 0xc0
jl 0x474339
mov edx, ebx
and edx, 0x3f
movzx edx, byte [edx + 0x4b3d00]
and ebx, dword [edx*4 + 0x4b3ce4]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl ebx, cl
cmp edx, eax
jl 0x474333
lea ebx, [ebx]
movzx esi, byte [eax + edi]
sub ecx, 6
and esi, 0x3f
shl esi, cl
inc eax
or ebx, esi
cmp eax, edx
jle 0x474320
add edi, edx
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x130]
xor esi, esi
cmp eax, esi
je 0x474350
mov ecx, ebp
mov ebp, dword [esp + 0x78]
sub ecx, ebp
add dword [eax], ecx
cmp dword [esp + 0x5c], esi
je 0x474373
cmp ebx, 0x5c
jne 0x474560
cmp byte [edi + 1], 0x45
jne 0x474560
mov dword [esp + 0x5c], esi
inc edi
jmp 0x474813
cmp ebx, 0x5b
jne 0x474516
mov al, byte [edi + 1]
cmp al, 0x3a
je 0x47438f
cmp al, 0x2e
je 0x47438f
cmp al, 0x3d
jne 0x474560
lea edx, [esp + 0x7c]
push edx
mov eax, edi
call fcn.00472d50
add esp, 4
test eax, eax
je 0x474560
cmp byte [edi + 1], 0x3a
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], ecx
jne 0x4772fc
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5e
jne 0x4743e1
mov eax, 1
add edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x7c]
mov ebx, esi
sub ebx, edi
push edi
call fcn.00472da0
add esp, 4
test eax, eax
js 0x47731f
mov ecx, dword [esp + 0x2c]
test cl, 1
je 0x47440a
cmp eax, 2
jg 0x47440a
xor eax, eax
test ecx, 0x20000000
je 0x474435
mov ecx, dword [esp + 0x40]
neg ecx
sbb ecx, ecx
and ecx, 0xe
add ecx, eax
mov edi, dword [ecx*4 + 0x4bd308]
test edi, edi
je 0x474435
inc esi
mov dword [esp + 0x68], esi
dec edi
jmp 0x474813
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x4b4a90]
add esi, edx
mov ecx, 8
lea edi, [esp + 0xec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x4b4a94]
mov esi, dword [eax*4 + 0x4b4a98]
test ecx, ecx
js 0x474494
xor eax, eax
add ecx, edx
test esi, esi
js 0x474482
lea ecx, [ecx]
mov dl, byte [eax + ecx]
or byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x474470
jmp 0x474494
mov dl, byte [eax + ecx]
not dl
and byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x474482
test esi, esi
jns 0x47449a
neg esi
cmp esi, 1
jne 0x4744a9
and byte [esp + 0xed], 0xc3
jmp 0x4744b6
cmp esi, 2
jne 0x4744b6
and byte [esp + 0xf7], 0x7f
xor eax, eax
cmp dword [esp + 0x40], eax
je 0x4744f0
mov edi, edi
mov cl, byte [esp + eax + 0xec]
not cl
or byte [esp + eax + 0x80], cl
inc eax
cmp eax, 0x20
jl 0x4744c0
mov edi, dword [esp + 0x7c]
inc edi
mov dword [esp + 0x1c], 0xa
jmp 0x474813
mov dl, byte [esp + eax + 0xec]
or byte [esp + eax + 0x80], dl
inc eax
cmp eax, 0x20
jl 0x4744f0
mov edi, dword [esp + 0x7c]
inc edi
mov dword [esp + 0x1c], 0xa
jmp 0x474813
cmp ebx, 0x5c
jne 0x474560
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x11c]
mov edx, dword [esp + 0x12c]
push 1
push eax
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x18]
push esi
push ecx
call fcn.00471240
add esp, 0x10
cmp dword [esi], 0
mov ebx, eax
jne 0x477737
mov edi, ebx
neg edi
cmp edi, 5
jne 0x4745df
lea ebx, [edi + 3]
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
mov eax, dword [esp + 0x5c]
jne 0x474589
lea ebx, [ebx]
cmp byte [edi + 2], 0x45
jne 0x474585
add edi, 2
xor eax, eax
mov dword [esp + 0x10], edi
cmp byte [edi + 1], 0x5c
je 0x474570
mov dword [esp + 0x5c], eax
mov dword [esp + 0x30], edi
cmp ebx, 0xd
je 0x474597
cmp ebx, 0xa
jne 0x4745a2
mov ecx, dword [esp + 0x12c]
or dword [ecx + 0x48], 0x20
test eax, eax
jne 0x474ebf
cmp byte [edi + 1], 0x2d
jne 0x474ebf
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x474ba1
cmp byte [edi + 1], 0x45
jne 0x474b6e
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x4745c4
jmp 0x474ba1
cmp edi, 0x1a
jne 0x474609
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x4745fc
cmp byte [edi + 2], 0x45
jne 0x4745fc
add edi, 2
jmp 0x474813
mov dword [esp + 0x5c], 1
jmp 0x474813
cmp edi, 0x19
je 0x47480f
test ebx, ebx
jns 0x47455c
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + 8]
mov edx, 2
add dword [esp + 0x1c], edx
lea ecx, [edi - 6]
cmp ecx, 0x1c
ja case.0x474640.12
movzx ecx, byte [ecx + 0x47783c]
jmp dword [ecx*4 + 0x477808]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
lea ecx, [ebx*4 + 0x74]
mov eax, 0x4bd2f0
sub eax, ecx
mov edi, dword [eax]
dec edi
sub dword [esp + 0x1c], edx
jmp 0x474813
xor ecx, ecx
jmp 0x474670
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x80], dl
inc ecx
cmp ecx, 0x20
jl 0x474670
jmp 0x47480f
mov dword [esp + 0x28], 1
xor ecx, ecx
mov dl, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x80], dl
inc ecx
cmp ecx, 0x20
jl 0x474690
jmp 0x47480f
xor ecx, ecx
lea ebx, [ebx]
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x80], dl
inc ecx
cmp ecx, 0x20
jl 0x4746b0
jmp 0x47480f
mov dword [esp + 0x28], 1
xor ecx, ecx
jmp 0x4746e0
mov dl, byte [eax + ecx + 0xa0]
not dl
or byte [esp + ecx + 0x80], dl
inc ecx
cmp ecx, 0x20
jl 0x4746e0
jmp 0x47480f
mov edi, eax
lea eax, [esp + 0x80]
xor edx, edx
sub edi, eax
jmp 0x474710
lea ecx, [esp + edx + 0x80]
mov al, byte [ecx + edi]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x474710
and byte [esp + 0x81], 0xf7
jmp 0x47480f
mov edi, eax
lea ecx, [esp + 0x80]
xor edx, edx
mov dword [esp + 0x28], 1
sub edi, ecx
lea ecx, [esp + edx + 0x80]
mov al, byte [ecx + edi]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x474744
or byte [esp + 0x81], 8
jmp 0x47480f
or byte [esp + 0x81], dl
or byte [esp + 0x84], 1
or byte [esp + 0x94], 1
cmp dword [esp + 0x34], 0
je 0x47480f
mov byte [ebp], 1
inc ebp
mov eax, ebp
mov edx, 0x1680
mov dword [esp + 0x20], 1
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 1
inc ebp
mov eax, ebp
mov edx, 0x180e
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x2000
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x200a
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 1
inc ebp
mov eax, ebp
mov edx, 0x202f
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 1
inc ebp
mov eax, ebp
mov edx, 0x205f
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 1
inc ebp
mov eax, ebp
mov edx, 0x3000
call fcn.00484dd0
add ebp, eax
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
movzx ebx, byte [edi]
test ebx, ebx
jne 0x474841
mov eax, dword [esp + 0x68]
test eax, eax
je 0x477370
lea edi, [eax + 1]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x10], edi
movzx ebx, byte [edi]
test ebx, ebx
je 0x477370
cmp ebx, 0x5d
jne 0x4742e0
cmp dword [esp + 0x5c], 0
jne 0x4742e0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp esi, 1
jne 0x47488d
cmp dword [esp + 0x20], 0
jne 0x47488d
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x475020
test eax, eax
je 0x475020
mov edx, dword [esp + 0x54]
cmp edx, 0x80
jl 0x475024
mov ecx, dword [esp + 0x38]
cmp ecx, 0xfffffffe
jne 0x47489d
or ecx, 0xffffffff
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x20], 0
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], edx
je 0x475100
cmp dword [esp + 0x28], 0
je 0x4748c9
test dword [esp + 0x2c], 0x20000000
je 0x475100
mov ecx, dword [esp + 0x14]
mov byte [ebp], 0
add ecx, 3
mov byte [ecx - 3], 0x50
inc ebp
test eax, eax
setne al
mov dword [esp + 0x14], ecx
mov byte [ecx], al
test esi, esi
jle 0x4750e2
or al, 2
mov edi, ecx
mov byte [edi], al
inc edi
mov eax, ebp
sub eax, edi
push eax
lea ecx, [edi + 0x20]
push edi
push ecx
call fcn.00486da0
mov ecx, 8
lea esi, [esp + 0x8c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp + 0x20]
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x4750e8
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x47493c
sub ecx, 3
je 0x474935
sub ecx, 0x10
jne 0x474941
mov edx, 0xfe
jmp 0x474941
mov edx, 0xfd
or byte [esp + eax + 0x80], dl
inc eax
cmp eax, 0x20
jl 0x474921
cmp dword [esp + 0x34], 0
je 0x47480f
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x100
mov dword [esp + 0x20], 1
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x167f
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x1681
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x180d
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x180f
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x1fff
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x200b
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x202e
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x2030
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x205e
call fcn.00484dd0
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x2060
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x2fff
call fcn.00484dd0
mov edx, 0x3001
add ebp, eax
mov byte [ebp], 2
inc ebp
mov eax, ebp
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, SysReAllocString
jmp 0x474808
or byte [esp + 0x81], 0x3c
or byte [esp + 0x90], 0x20
cmp dword [esp + 0x34], 0
je 0x47480f
mov byte [ebp], dl
inc ebp
mov eax, ebp
mov edx, 0x2028
mov dword [esp + 0x20], 1
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x2029
jmp 0x474808
xor eax, eax
lea esp, [esp]
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x474aa6
sub ecx, 0xf
jne 0x474aab
mov edx, 0xdf
jmp 0x474aab
mov edx, 0xc3
or byte [esp + eax + 0x80], dl
inc eax
cmp eax, 0x20
jl 0x474a90
cmp dword [esp + 0x34], 0
je 0x47480f
mov byte [ebp], 2
inc ebp
mov eax, ebp
mov edx, 0x100
mov dword [esp + 0x20], 1
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, 0x2027
call fcn.00484dd0
mov edx, 0x2029
jmp 0x474a2a
push esi
lea ecx, [esp + 0xe0]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xf4]
call fcn.00471640
add esp, 0xc
test eax, eax
js 0x477737
xor ecx, ecx
cmp edi, 0x10
sete cl
mov dword [esp + 0x20], 1
cmp ecx, dword [esp + 0xe8]
sete dl
add dl, 3
mov byte [ebp], dl
mov byte [ebp + 1], al
mov al, byte [esp + 0xdc]
mov byte [ebp + 2], al
add ebp, 3
sub dword [esp + 0x1c], 2
jmp 0x47480f
test byte [esp + 0x2c], 0x40
mov edi, dword [esp + 0x10]
jne 0x477331
sub dword [esp + 0x1c], edx
movzx ebx, byte [edi]
jmp 0x474560
cmp byte [edi], 0x5c
jne 0x474ba1
cmp byte [edi + 1], 0x51
jne 0x474ba1
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x474b99
cmp byte [edi + 1], 0x45
jne 0x474b99
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x474b73
jmp 0x474ba1
mov dword [esp + 0x5c], 1
mov al, byte [edi]
test al, al
je 0x474eb7
cmp dword [esp + 0x5c], 0
jne 0x474bba
cmp al, 0x5d
je 0x474eb7
cmp dword [esp + 0x34], 0
movzx esi, al
mov dword [esp + 0x40], esi
je 0x474c2c
cmp esi, 0xc0
jl 0x474c2c
mov ecx, esi
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b3d00]
mov edx, dword [eax*4 + 0x4b3ce4]
and edx, esi
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
mov dword [esp + 0x64], eax
mov esi, edx
mov dword [esp + 0x40], edx
mov edx, 1
mov dword [esp + 0x48], edx
cmp eax, edx
jl 0x474c26
movzx eax, byte [edx + edi]
mov edx, dword [esp + 0x48]
and eax, 0x3f
sub ecx, 6
shl eax, cl
inc edx
mov dword [esp + 0x48], edx
or esi, eax
mov eax, dword [esp + 0x64]
cmp edx, eax
jle 0x474c03
mov dword [esp + 0x40], esi
add edi, eax
mov dword [esp + 0x10], edi
cmp dword [esp + 0x5c], 0
jne 0x474c87
cmp esi, 0x5c
jne 0x474c87
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x11c]
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + 0x34]
push 1
push ecx
lea edx, [esp + 0x18]
push edi
push edx
call fcn.00471240
add esp, 0x10
cmp dword [edi], 0
mov esi, eax
mov dword [esp + 0x40], esi
jne 0x477737
test esi, esi
jns 0x474c83
cmp esi, 0xfffffffb
jne 0x474eb7
mov esi, 8
mov dword [esp + 0x40], esi
mov edi, dword [esp + 0x10]
cmp esi, ebx
jl 0x47734d
je 0x474ebf
cmp esi, 0xd
je 0x474c9f
cmp esi, 0xa
jne 0x474caa
mov eax, dword [esp + 0x12c]
or dword [eax + 0x48], 0x20
cmp dword [esp + 0x34], 0
je 0x474e24
cmp esi, 0xff
jg 0x474cd1
test byte [esp + 0x2c], 1
je 0x474e24
cmp esi, 0x7f
jle 0x474e24
test byte [esp + 0x2c], 1
mov edi, dword [esp + 0x40]
mov dword [esp + 0x20], 1
je 0x474d9a
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0xd4]
push edx
mov edx, edi
lea esi, [esp + 0x50]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], edi
call fcn.00472f90
add esp, 8
test eax, eax
je 0x474d9a
jmp 0x474d20
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xb4]
cmp edx, ebx
jb 0x474d38
cmp esi, edi
jbe 0x474d76
jmp 0x474d47
lea eax, [ebx - 1]
cmp esi, eax
jb 0x474d43
mov ebx, edx
jmp 0x474d76
cmp esi, edi
jbe 0x474d52
lea ecx, [edi + 1]
cmp edx, ecx
ja 0x474d52
mov edi, esi
jmp 0x474d76
cmp edx, esi
jne 0x474d5d
mov byte [ebp], 1
inc ebp
jmp 0x474d6b
mov byte [ebp], 2
inc ebp
mov eax, ebp
call fcn.00484dd0
add ebp, eax
mov eax, ebp
mov edx, esi
call fcn.00484dd0
add ebp, eax
lea edx, [esp + 0xb4]
push edx
mov edx, dword [esp + 0x68]
lea eax, [esp + 0xd4]
push eax
lea esi, [esp + 0x50]
call fcn.00472f90
add esp, 8
test eax, eax
jne 0x474d20
mov byte [ebp], 2
inc ebp
xor ecx, ecx
cmp ebx, dword [ecx*4 + 0x4b3cb0]
jle 0x474db0
inc ecx
cmp ecx, 6
jl 0x474da1
add ebp, ecx
mov eax, ebp
mov esi, ecx
test ecx, ecx
jle 0x474dd3
lea ebx, [ebx]
mov dl, bl
and dl, 0x3f
or dl, 0x80
mov byte [eax], dl
dec esi
dec eax
sar ebx, 6
test esi, esi
jg 0x474dc0
mov cl, byte [ecx*4 + 0x4b3ccc]
or cl, bl
mov byte [eax], cl
mov edx, edi
xor ecx, ecx
cmp edi, dword [ecx*4 + 0x4b3cb0]
jle 0x474df1
inc ecx
cmp ecx, 6
jl 0x474de2
lea ebp, [ecx + ebp + 1]
mov eax, ebp
mov esi, ecx
test ecx, ecx
jle 0x474e13
lea ecx, [ecx]
mov bl, dl
and bl, 0x3f
or bl, 0x80
mov byte [eax], bl
dec esi
dec eax
sar edx, 6
test esi, esi
jg 0x474e00
mov cl, byte [ecx*4 + 0x4b3ccc]
or cl, dl
mov byte [eax], cl
inc ebp
jmp 0x47480f
mov eax, dword [esp + 0x1c]
mov edx, esi
sub edx, ebx
cmp dword [esp + 0x130], 0
lea ecx, [eax + edx + 1]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], esi
jne 0x474813
cmp ebx, esi
jg 0x474813
mov eax, dword [esp + 0x2c]
and eax, 1
mov dword [esp + 0x64], eax
lea esp, [esp]
mov eax, ebx
cdq
and edx, 7
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [esp + eax + 0x80]
or byte [eax], dl
cmp dword [esp + 0x64], 0
je 0x474ead
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + ebx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [esp + eax + 0x80]
or byte [eax], dl
inc ebx
cmp ebx, esi
jle 0x474e60
jmp 0x474813
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], edi
cmp dword [esp + 0x34], 0
je 0x474fc4
cmp ebx, 0xff
jg 0x474ee6
test byte [esp + 0x2c], 1
je 0x474fc4
cmp ebx, 0x7f
jle 0x474fc4
mov byte [ebp], 1
inc ebp
mov dword [esp + 0x20], 1
mov ecx, ebx
xor eax, eax
cmp ebx, dword [eax*4 + 0x4b3cb0]
jle 0x474f06
inc eax
cmp eax, 6
jl 0x474ef7
add ebp, eax
mov esi, ebp
mov edi, eax
test eax, eax
jle 0x474f23
mov dl, cl
and dl, 0x3f
or dl, 0x80
mov byte [esi], dl
dec edi
dec esi
sar ecx, 6
test edi, edi
jg 0x474f10
mov al, byte [eax*4 + 0x4b3ccc]
or al, cl
inc ebp
test byte [esp + 0x2c], 1
mov byte [esi], al
je 0x47480f
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4a6e38]
mov edx, ebx
shl ecx, 7
and edx, 0x8000007f
jns 0x474f5e
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x4a9038]
mov edx, dword [eax*8 + 0x4a5e0c]
add edx, ebx
cmp edx, ebx
je 0x47480f
mov byte [ebp], 1
inc ebp
xor ecx, ecx
cmp edx, dword [ecx*4 + 0x4b3cb0]
jle 0x474f8f
inc ecx
cmp ecx, 6
jl 0x474f80
add ebp, ecx
mov eax, ebp
mov esi, ecx
test ecx, ecx
jle 0x474fb3
lea esp, [esp]
mov bl, dl
and bl, 0x3f
or bl, 0x80
mov byte [eax], bl
dec esi
dec eax
sar edx, 6
test esi, esi
jg 0x474fa0
mov cl, byte [ecx*4 + 0x4b3ccc]
or cl, dl
mov byte [eax], cl
inc ebp
jmp 0x47480f
mov eax, ebx
cdq
and edx, 7
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea esi, [esp + eax + 0x80]
or byte [esi], dl
test byte [esp + 0x2c], 1
je 0x475013
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 4]
movzx ebx, byte [ecx + ebx]
mov eax, ebx
cdq
and edx, 7
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea esi, [esp + eax + 0x80]
or byte [esi], dl
inc dword [esp + 0x1c]
mov dword [esp + 0x54], ebx
jmp 0x474813
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x40], esi
test eax, eax
je 0x475074
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x475040
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov byte [eax], 0x1e
mov byte [eax + 1], dl
add eax, 2
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
test ecx, ecx
je 0x4750cd
cmp edx, 0x7f
jle 0x4750cd
xor ebp, ebp
nop
cmp edx, dword [ebp*4 + 0x4b3cb0]
jle 0x47508f
inc ebp
cmp ebp, 6
jl 0x475080
lea eax, [esp + ebp + 0xa8]
test ebp, ebp
jle 0x4750b8
mov ecx, eax
lea esi, [esp + 0xa8]
sub ecx, esi
mov bl, dl
and bl, 0x3f
or bl, 0x80
mov byte [eax], bl
dec ecx
dec eax
sar edx, 6
test ecx, ecx
jg 0x4750a5
mov cl, byte [ebp*4 + 0x4b3ccc]
mov ebx, dword [esp + 0x14]
or cl, dl
mov byte [eax], cl
inc ebp
jmp 0x473ea8
mov ebx, dword [esp + 0x14]
mov byte [esp + 0xa8], dl
mov ebp, 1
jmp 0x473ea8
mov dword [esp + 0x14], ebp
mov ecx, ebp
mov eax, dword [esp + 0x18]
mov edx, ecx
sub edx, eax
sar edx, 8
sub cl, al
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jmp 0x475055
cmp eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
setne dl
add dl, 0x4e
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x47514a
cmp dword [esp + 0x130], 0
jne 0x475160
lea esi, [esp + 0x80]
mov eax, ecx
sub esi, ecx
mov edi, 0x20
mov dl, byte [esi + eax]
not dl
mov byte [eax], dl
inc eax
dec edi
jne 0x475133
add ecx, 0x20
mov dword [esp + 0x14], ecx
jmp 0x475055
mov edi, dword [esp + 0x14]
mov ecx, 8
lea esi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
add ecx, 0x20
mov dword [esp + 0x14], ecx
jmp 0x475055
cmp dword [esp + 0x24], edx
je case.0x4740ac.1
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x50]
lea eax, [edi + 1]
mov edi, dword [esp + 0x120]
push ecx
call fcn.004717d0
mov edx, dword [esp + 0x124]
add esp, 8
cmp dword [edx], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x47773b
jmp 0x4751d2
mov dword [esp + 0x3c], 0xffffffff
jmp 0x4751ce
mov dword [esp + 0x4c], 1
mov dword [esp + 0x3c], 0xffffffff
jmp 0x4751d2
mov dword [esp + 0x3c], 1
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp esi, edx
je 0x477393
cmp dword [esp + 0x4c], edx
jne 0x4751f6
mov eax, dword [esp + 0x54]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
sub eax, ecx
neg eax
sbb eax, eax
and eax, 0x200
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], esi
mov al, byte [edi + 1]
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edx
cmp al, 0x2b
jne 0x47522d
xor eax, eax
inc edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], edi
jmp 0x475246
cmp al, 0x3f
jne 0x47523f
mov eax, dword [esp + 0xcc]
inc edi
mov dword [esp + 0x10], edi
jmp 0x475246
mov eax, dword [esp + 0xc8]
mov dl, byte [esi]
mov dword [esp + 0x1c], eax
mov byte [esp + 0x5b], dl
cmp dl, 0x1c
je 0x4757fd
cmp dl, 0x1d
je 0x4757fd
cmp dl, 0x1e
jne 0x47527c
movzx edx, byte [esi + 1]
mov dword [esp + 0x30], 0xd
mov dword [esp + 0x20], edx
jmp 0x47587d
cmp dl, 0x17
jae 0x475297
movzx edx, byte [esp + 0x5b]
mov dword [esp + 0x30], 0x1a
mov dword [esp + 0x20], edx
jmp 0x47587d
cmp dl, 0x4e
je 0x47574d
cmp dl, 0x4f
je 0x47574d
cmp dl, 0x50
je 0x47574d
cmp dl, 0x51
je 0x47574d
cmp dl, 0x5e
je 0x4752fb
cmp dl, 0x5f
je 0x4752fb
cmp dl, 0x5d
je 0x4752fb
cmp dl, 0x60
je 0x4752fb
cmp dl, 0x73
je 0x475759
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xb
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, ebx
sub eax, esi
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
cmp dl, 0x60
jne 0x475322
cmp byte [esi + 3], 0x68
je 0x4773b6
cmp ecx, 0xffffffff
jne 0x475353
mov eax, esi
lea esp, [esp]
movzx edx, byte [eax + 1]
movzx ebp, byte [eax + 2]
shl edx, 8
or edx, ebp
add eax, edx
cmp byte [eax], 0x55
jne 0x475330
mov ebp, dword [esp + 0x12c]
mov edx, ebx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x47541d
mov byte [ebx], al
cmp ecx, 1
jg 0x4753c0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
push eax
push ebp
push ecx
push 1
push esi
call fcn.00472df0
mov edx, dword [esp + 0x34]
push edx
lea edi, [esi + 1]
push esi
push edi
call fcn.00486da0
inc ebx
add esp, 0x20
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x14], ebx
jne 0x4753a3
mov byte [esi], 0x76
mov edi, dword [esp + 0x10]
jmp 0x475759
mov al, byte [esp + 0x1c]
add al, 0x69
dec dword [esp + 0x3c]
mov byte [esi], al
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
jmp 0x47552b
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
push ecx
push ebp
push edx
push 4
push esi
call fcn.00472df0
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esi + 4]
push esi
push ecx
call fcn.00486da0
mov dl, byte [esp + 0x3c]
add dl, 0x69
mov byte [esi], dl
mov byte [esi + 1], 0x5e
add esi, 2
mov word [esi], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x44], esi
add esi, 2
add ebx, 4
add esp, 0x20
dec dword [esp + 0x3c]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
jmp 0x47552b
cmp eax, 1
jle 0x47551b
mov edx, dword [esp + 0x130]
test edx, edx
je 0x475474
mov eax, dword [esp + 0x4c]
dec eax
mov dword [esp + 0x64], eax
imul eax, dword [esp + 0x70]
fild dword [esp + 0x64]
fimul dword [esp + 0x70]
mov ecx, eax
fcomp qword [0x4b76c8]
fnstsw ax
test ah, 0x41
je 0x4773d9
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x4773d9
add eax, ecx
mov dword [edx], eax
jmp 0x47551b
cmp dword [esp + 0xb8], 0
je 0x47548d
cmp dword [esp + 0x50], 0
jge 0x47548d
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], eax
cmp dword [esp + 0x4c], 1
jle 0x47551b
mov ecx, dword [esp + 0x4c]
dec ecx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x12c]
mov ebp, dword [edx + 0x24]
push eax
push esi
push ebx
call fcn.00489760
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x2c]
add esp, 0xc
cmp edi, ebp
jae 0x475507
movzx ecx, byte [edi]
movzx edx, byte [edi + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x12c]
mov edx, dword [edx + 0x24]
add ecx, eax
sar ecx, 8
mov byte [edx], cl
mov cl, byte [edi + 1]
mov edx, dword [esp + 0x12c]
mov edx, dword [edx + 0x24]
add cl, al
mov byte [edx + 1], cl
mov ecx, dword [esp + 0x12c]
add dword [ecx + 0x24], 2
add edi, 2
cmp edi, ebp
jb 0x4754c6
add ebx, eax
dec dword [esp + 0x48]
mov dword [esp + 0x60], ebp
jne 0x4754a1
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x3c]
test esi, esi
jle 0x47552d
sub esi, dword [esp + 0x4c]
mov dword [esp + 0x3c], esi
test esi, esi
js 0x4756d7
mov edx, dword [esp + 0x130]
test edx, edx
je 0x4755b3
test esi, esi
jle 0x4755b3
mov eax, dword [esp + 0x70]
add eax, 7
mov dword [esp + 0x64], eax
imul eax, esi
fild dword [esp + 0x64]
fimul dword [esp + 0x3c]
lea ecx, [eax - 6]
fcomp qword [0x4b76c8]
fnstsw ax
test ah, 0x41
je 0x47721e
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x47721e
add eax, ecx
mov dword [edx], eax
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x475b12
lea ecx, [ecx]
mov eax, ebx
sub eax, ebp
inc eax
mov edi, ebx
sub edi, eax
movzx ecx, byte [edi + 1]
movzx edx, byte [edi + 2]
shl ecx, 8
or ecx, edx
jne 0x4756ad
xor ebp, ebp
jmp 0x4756af
dec esi
mov dword [esp + 0x48], esi
js 0x475581
mov al, byte [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x60]
add al, 0x69
mov byte [esp + 0x5b], al
lea esp, [esp]
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x24]
mov dl, byte [esp + 0x5b]
mov byte [ebx], dl
inc ebx
mov dword [esp + 0x60], ecx
test esi, esi
je 0x47560e
mov byte [ebx], 0x5e
test ebp, ebp
jne 0x4755f4
xor eax, eax
jmp 0x4755f9
lea eax, [ebx + 1]
sub eax, ebp
mov ecx, eax
sar ecx, 8
lea ebp, [ebx + 1]
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
mov dword [esp + 0x24], ebp
add ebx, 3
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
push edx
push eax
push ebx
call fcn.00489760
mov ecx, dword [esp + 0x2c]
add esp, 0xc
cmp edi, dword [esp + 0x60]
jae 0x47568b
mov ebp, esi
neg ebp
sbb ebp, ebp
and ebp, 3
inc ebp
mov eax, esi
neg eax
sbb al, al
and al, 3
inc al
nop
movzx edx, byte [edi]
movzx esi, byte [edi + 1]
shl edx, 8
or edx, esi
mov esi, dword [esp + 0x12c]
add edx, ecx
mov ecx, dword [esi + 0x24]
add edx, ebp
sar edx, 8
mov byte [ecx], dl
mov ecx, dword [esp + 0x20]
mov esi, dword [esi + 0x24]
lea edx, [ecx + eax]
add dl, byte [edi + 1]
add edi, 2
mov byte [esi + 1], dl
mov edx, dword [esp + 0x12c]
add dword [edx + 0x24], 2
cmp edi, dword [esp + 0x60]
jb 0x475640
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x60]
add ebx, ecx
dec esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x48], esi
jns 0x4755d0
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
jmp 0x475585
sub ebp, 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 [edi + 1], cl
mov byte [edi + 2], al
test ebp, ebp
jne 0x475590
mov dword [esp + 0x14], ebx
jmp 0x475b0e
mov edi, ebx
sub edi, dword [esp + 0x30]
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 2]
shl eax, 8
or eax, ecx
mov ebp, edi
sub ebp, eax
mov al, byte [esp + 0x1c]
add al, 0x56
cmp dword [esp + 0x130], 0
mov byte [edi], al
jne 0x475b0e
cmp byte [ebp], 0x5d
je 0x475b0e
mov esi, ebp
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x34]
push edx
push eax
push edi
push esi
call fcn.004723b0
add esp, 0x10
test eax, eax
jne 0x475744
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
shl ecx, 8
or ecx, edx
add esi, ecx
cmp byte [esi], 0x54
je 0x475710
jmp 0x475b0e
add byte [ebp], 3
jmp 0x475b0e
test ecx, ecx
jne 0x475781
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x12c]
or dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x18]
inc edi
mov ebp, eax
xor edx, edx
jmp 0x473cbe
cmp dword [esp + 0x4c], 0
jne 0x47579b
cmp ecx, 0xffffffff
jne 0x4757b5
add al, 0x46
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x475b0e
cmp dword [esp + 0x4c], 1
jne 0x4757c8
cmp ecx, 0xffffffff
jne 0x4757c8
add al, 0x48
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x475b0e
cmp ecx, 1
jne 0x4757c8
add al, 0x4a
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x475b0e
add al, 0x4c
mov byte [ebx], al
mov eax, dword [esp + 0x4c]
mov edx, eax
sar edx, 8
mov byte [ebx + 1], dl
mov byte [ebx + 2], al
cmp ecx, 0xffffffff
jne 0x4757e6
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov eax, ecx
sar eax, 8
mov byte [ebx + 3], al
mov byte [ebx + 4], cl
add ebx, 5
mov dword [esp + 0x14], ebx
jmp 0x475b0e
cmp dword [esp + 0x34], 0
je 0x475856
test byte [ebx - 1], 0x80
lea edx, [ebx - 1]
je 0x475856
mov ecx, edx
mov dl, byte [ecx]
and dl, 0xc0
cmp dl, 0x80
jne 0x47582a
lea esp, [esp]
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x475820
mov eax, ebx
sub eax, ecx
push eax
push ecx
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0x2c], eax
call fcn.00489760
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
add esp, 0xc
or dword [esp + 0x20], 0x80
jmp 0x47587d
cmp dword [esp + 0x4c], 1
movzx edx, byte [ebx - 1]
mov dword [esp + 0x20], edx
jle 0x47587d
mov edx, dword [esp + 0x12c]
mov ebp, dword [edx + 0x4c]
or ebp, dword [esp + 0x20]
or ebp, dword [esp + 0x74]
mov dword [esp + 0x50], ebp
mov ebp, edx
cmp dword [esp + 0x28], 0
jne 0x4758bf
test ecx, ecx
jns 0x4758bf
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push eax
inc edi
push edi
push ecx
push esi
mov eax, ebp
call fcn.004731d0
add esp, 0x10
test eax, eax
je 0x4758b3
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov dl, byte [esi]
cmp dl, 0x10
je 0x4758dd
cmp dl, 0xf
je 0x4758dd
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
jmp 0x4758ed
movzx edx, byte [esi + 1]
mov dword [esp + 0x24], edx
movzx edx, byte [esi + 2]
mov dword [esp + 0x18], edx
mov ebp, ebx
mov dword [esp + 0x14], esi
test ecx, ecx
je 0x475755
mov ebx, dword [esp + 0x30]
add eax, ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x1c], eax
jne 0x47594d
cmp ecx, 0xffffffff
jne 0x47591f
add al, 0x1f
mov byte [esi], al
inc esi
mov dword [esp + 0x14], esi
jmp 0x475aa6
cmp ecx, 1
jne 0x475932
add al, 0x23
mov byte [esi], al
inc esi
mov dword [esp + 0x14], esi
jmp 0x475aa6
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
jmp 0x475aa6
cmp dword [esp + 0x4c], 1
jne 0x475995
cmp ecx, 0xffffffff
jne 0x475967
add al, 0x21
mov byte [esi], al
inc esi
mov dword [esp + 0x14], esi
jmp 0x475aa6
mov dword [esp + 0x14], ebp
cmp ecx, 1
je 0x475755
add al, 0x25
mov byte [ebp], al
lea edx, [ecx - 1]
lea eax, [ebp + 1]
sar edx, 8
dec cl
mov byte [eax], dl
mov byte [eax + 1], cl
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x475aa6
mov edx, dword [esp + 0x4c]
add bl, 0x27
mov byte [esi], bl
lea edi, [esi + 1]
mov ebx, edx
sar ebx, 8
mov byte [edi], bl
mov byte [edi + 1], dl
add edi, 2
mov dword [esp + 0x14], edi
test ecx, ecx
jns 0x475a15
cmp dword [esp + 0x34], 0
je 0x4759f0
cmp dword [esp + 0x20], 0x80
jl 0x4759f0
mov esi, dword [esp + 0x20]
and esi, 7
push esi
lea eax, [esp + 0xd8]
push eax
push edi
call fcn.00489760
mov eax, dword [esp + 0x28]
add edi, esi
add al, 0x1f
add esp, 0xc
mov byte [edi], al
inc edi
jmp 0x475aa2
mov cl, byte [esp + 0x20]
mov byte [edi], cl
mov ecx, dword [esp + 0x24]
inc edi
test ecx, ecx
js 0x475a0b
mov dl, byte [esp + 0x18]
mov byte [edi], cl
mov byte [edi + 1], dl
add edi, 2
add al, 0x1f
mov byte [edi], al
inc edi
jmp 0x475aa2
cmp ecx, edx
je 0x475aa6
cmp dword [esp + 0x34], 0
je 0x475a4f
cmp dword [esp + 0x20], 0x80
jl 0x475a4f
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
and esi, 7
push esi
lea eax, [esp + 0xd8]
push eax
push edi
call fcn.00489760
add esp, 0xc
add edi, esi
jmp 0x475a60
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x20]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov edi, eax
mov eax, dword [esp + 0x24]
test eax, eax
js 0x475a74
mov dl, byte [esp + 0x18]
mov byte [edi], al
mov byte [edi + 1], dl
add edi, 2
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x4c]
mov al, byte [esp + 0x1c]
mov dword [esp + 0x3c], ecx
cmp ecx, 1
jne 0x475a90
add al, 0x23
mov byte [edi], al
inc edi
jmp 0x475aa2
add al, 0x25
mov byte [edi], al
mov eax, ecx
sar eax, 8
mov byte [edi + 1], al
mov byte [edi + 2], cl
add edi, 3
mov dword [esp + 0x14], edi
cmp dword [esp + 0x34], 0
je 0x475adc
cmp dword [esp + 0x20], 0x80
jl 0x475adc
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
and esi, 7
push esi
lea ecx, [esp + 0xd8]
push ecx
push edi
call fcn.00489760
add esp, 0xc
add edi, esi
mov dword [esp + 0x14], edi
jmp 0x475aeb
mov eax, dword [esp + 0x14]
mov dl, byte [esp + 0x20]
mov byte [eax], dl
inc eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x24], 0
jl 0x475b0a
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x24]
mov dl, byte [esp + 0x18]
mov byte [eax], cl
mov byte [eax + 1], dl
add eax, 2
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x44]
je 0x475759
mov cl, byte [eax]
cmp cl, 0x41
jne 0x475b48
mov cl, byte [eax + 3]
cmp cl, 0x10
je 0x475b3d
cmp cl, 0xf
je 0x475b3d
xor ecx, ecx
lea eax, [eax + ecx + 4]
jmp 0x475b80
mov ecx, 2
lea eax, [eax + ecx + 4]
jmp 0x475b80
cmp cl, 0x27
je 0x475b52
cmp cl, 0x34
jne 0x475b84
movzx ecx, cl
movzx edx, byte [ecx + 0x4b3c38]
add eax, edx
cmp dword [esp + 0x34], 0
mov dword [esp + 0x44], eax
je 0x475b84
mov cl, byte [eax - 1]
cmp cl, 0xc0
jb 0x475b84
movzx ecx, cl
and ecx, 0x3f
movzx edx, byte [ecx + 0x4b3d00]
add eax, edx
mov dword [esp + 0x44], eax
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x48], ecx
test ecx, ecx
jle 0x475759
movzx ecx, byte [eax]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x475baa.32
movzx ecx, byte [ecx + 0x477890]
jmp dword [ecx*4 + 0x47785c]
mov byte [eax], 0x28
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x29
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x2a
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x2b
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x42
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x43
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x44
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x45
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x35
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x36
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x37
mov edi, dword [esp + 0x10]
jmp 0x475759
mov byte [eax], 0x38
mov edi, dword [esp + 0x10]
jmp 0x475759
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
mov byte [ebx], 0
mov edx, dword [esp + 0x50]
push 3
push edx
call fcn.00472df0
mov eax, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x5c]
push eax
add eax, 3
push eax
call fcn.00486da0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
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 + 0x64]
mov byte [edx + 1], al
mov eax, dword [esp + 0x64]
add esp, 0x20
add ebx, 6
mov byte [eax + 2], cl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
jmp 0x475759
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x24]
inc edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 0x5f
mov dword [esp + 0x60], ecx
mov dword [esp + 0x48], edx
cmp al, 0x2a
jne 0x475e74
mov edx, dword [esp + 0x12c]
mov ebp, dword [edx + 0xc]
lea ecx, [edi + 1]
mov dword [esp + 0x28], ecx
mov cl, byte [ecx]
movzx edx, cl
test byte [edx + ebp], 2
jne 0x475d06
cmp cl, 0x3a
jne 0x475e74
xor eax, eax
mov dword [esp + 0x24], eax
mov esi, 0x4b4494
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], eax
lea esp, [esp]
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
test byte [ecx + ebp], 2
jne 0x475d20
mov ecx, edi
sub ecx, dword [esp + 0x28]
cmp byte [edi], 0x3a
mov dword [esp + 0x64], ecx
jne 0x475d64
inc edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx edx, al
test byte [edx + ebp], 6
jne 0x475d55
cmp al, 0x5f
jne 0x475d58
inc edi
jmp 0x475d42
mov eax, edi
sub eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
xor eax, eax
cmp byte [edi], 0x29
jne 0x4773fc
xor ebp, ebp
mov edi, 0x4b49a8
cmp ecx, dword [edi]
jne 0x475d8f
mov eax, dword [esp + 0x28]
push ecx
push esi
push eax
call fcn.00489cb1
add esp, 0xc
test eax, eax
je 0x475db3
mov ecx, dword [esp + 0x64]
mov edx, dword [edi]
add edi, 0xc
inc ebp
lea esi, [esi + edx + 1]
cmp edi, 0x4b4a14
jl 0x475d74
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x3c
jmp 0x477737
lea edi, [ebp + ebp*2]
add edi, edi
add edi, edi
cmp dword [edi + 0x4b49ac], 0x74
jne 0x475df8
mov eax, dword [esp + 0x12c]
mov dword [eax + 0x50], 1
mov eax, dword [eax + 0x20]
test eax, eax
je 0x475df8
lea esp, [esp]
mov byte [ebx], 0x75
mov cl, byte [eax + 5]
mov byte [ebx + 1], cl
mov dl, byte [eax + 4]
mov byte [ebx + 2], dl
mov eax, dword [eax]
add ebx, 3
test eax, eax
jne 0x475de0
cmp dword [esp + 0x24], 0
jne 0x475e16
cmp dword [edi + 0x4b49ac], 0
jl 0x47741f
mov al, byte [edi + 0x4b49ac]
mov byte [ebx], al
jmp 0x475e4b
cmp dword [edi + 0x4b49b0], 0
jl 0x477431
mov cl, byte [edi + 0x4b49b0]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov byte [ebx], cl
push eax
mov byte [ebx + 1], al
push edx
add ebx, 2
push ebx
call fcn.00489760
add esp, 0xc
add ebx, dword [esp + 0x24]
mov byte [ebx], 0
inc ebx
mov dword [esp + 0x14], ebx
cmp ebp, 9
jge 0x475da1
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
cmp al, 0x3f
jne 0x4767ba
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x475e99.34
movzx ecx, byte [ecx + 0x4778f0]
jmp dword [ecx*4 + 0x4778b4]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x475ebf
jmp 0x475eb0
cmp al, 0x29
je 0x475ee2
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
jne 0x475eb0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x12
xor eax, eax
pop ebx
add esp, 0xfc
ret
cmp byte [edi], 0
je 0x475ebf
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
mov dword [esp + 0x48], 1
mov dword [esp + 0x20], 0x5e
inc edi
mov dword [esp + 0x10], edi
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x20]
xor eax, eax
cmp ecx, 0x5d
setl al
mov byte [ebx], cl
mov dword [esp + 0x44], ebx
dec eax
and eax, ebx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x70], eax
cmp ecx, 0x5a
je 0x475f46
cmp ecx, 0x5b
jne 0x475f4b
mov eax, 1
mov esi, dword [esp + 0x130]
mov ecx, esi
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x70]
and ecx, edx
push ecx
mov ecx, dword [esp + 0x12c]
push ebp
push ecx
lea edx, [esp + 0xb0]
push edx
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x134]
push ecx
push eax
push edx
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0x6c]
push ecx
and edx, 7
push edx
push eax
call fcn.004779c0
add esp, 0x34
test eax, eax
je 0x477737
mov edx, dword [esp + 0x20]
cmp edx, 0x60
jne 0x475ffd
test esi, esi
jne 0x475ffd
mov eax, ebx
xor ecx, ecx
jmp 0x475fd0
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 0x475fd0
cmp byte [ebx + 3], 0x68
jne 0x476b3a
cmp ecx, 1
jg 0x477625
mov edx, 0x68
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x29
jne 0x477649
cmp dword [esp + 0x130], 0
je 0x476b64
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x70]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x47766c
mov esi, dword [esp + 0x18]
lea eax, [eax + ecx - 6]
mov ecx, dword [esp + 0x130]
mov dword [ecx], eax
mov ecx, dword [esp + 0x6c]
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
mov edi, dword [esp + 0x10]
add ebx, 6
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
cmp byte [edi + 1], 0x3f
mov dword [esp + 0x20], 0x60
jne 0x4760a7
mov al, byte [edi + 2]
cmp al, 0x3d
je 0x475f0f
cmp al, 0x21
je 0x475f0f
cmp al, 0x3c
je 0x475f0f
mov byte [ebx + 3], 0x64
mov edi, dword [esp + 0x10]
mov al, byte [edi + 1]
mov dword [esp + 0x24], 3
mov dword [esp + 0x30], 0xffffffff
cmp al, 0x52
jne 0x4760e4
cmp byte [edi + 2], 0x26
lea ecx, [edi + 2]
jne 0x4760e4
mov dword [esp + 0x10], ecx
or edx, 0xffffffff
mov byte [ebx + 3], 0x66
mov edi, dword [esp + 0x10]
mov dword [esp + 0x28], edx
jmp 0x476126
cmp al, 0x3c
jne 0x4760f8
mov edx, 0x3e
inc edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], edi
jmp 0x476126
cmp al, 0x27
jne 0x47610c
mov edx, 0x27
inc edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], edi
jmp 0x476126
xor edx, edx
mov dword [esp + 0x28], edx
cmp al, 0x2d
je 0x47611a
cmp al, 0x2b
jne 0x476126
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x30], eax
movzx ecx, byte [edi + 1]
mov ebp, dword [esp + 0x12c]
mov esi, dword [ebp + 0xc]
inc edi
test byte [ecx + esi], 0x10
je 0x477443
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [esi + eax], 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
je 0x476181
test ecx, ecx
js 0x47616f
test byte [eax + 0x4b5520], 4
je 0x47616c
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
jmp 0x47616f
or ecx, 0xffffffff
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [esi + eax], 0x10
jne 0x476156
mov dword [esp + 0x1c], ecx
mov esi, edi
sub esi, dword [esp + 0x18]
test edx, edx
jle 0x47619b
movzx eax, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp eax, edx
jne 0x477466
mov dl, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp dl, 0x29
jne 0x477466
cmp dword [esp + 0x130], 0
jne 0x475f16
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4761fc
test ecx, ecx
jle 0x47748a
cmp eax, 0x2d
jne 0x4761d8
mov eax, dword [ebp + 0x34]
sub eax, ecx
lea ecx, [eax + 1]
jmp 0x4761db
add ecx, dword [ebp + 0x34]
test ecx, ecx
jle 0x4774ad
cmp ecx, dword [ebp + 0x38]
jg 0x4774ad
mov edx, ecx
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], cl
jmp 0x475f16
mov eax, ebp
mov edi, dword [eax + 0x28]
xor ebp, ebp
cmp dword [eax + 0x2c], ebp
jle 0x47622e
mov ecx, dword [esp + 0x18]
push esi
lea eax, [edi + 2]
push eax
push ecx
call fcn.00489cb1
add esp, 0xc
test eax, eax
je 0x47622e
mov eax, dword [esp + 0x12c]
add edi, dword [eax + 0x30]
inc ebp
cmp ebp, dword [eax + 0x2c]
jl 0x476208
mov edx, dword [esp + 0x12c]
cmp ebp, dword [edx + 0x2c]
jge 0x476259
movzx ecx, byte [edi]
movzx eax, byte [edi + 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
jmp 0x475f0f
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
shr eax, 3
and eax, 1
push eax
push esi
mov ebp, edx
push edi
push ebp
call fcn.00471be0
add esp, 0x10
test eax, eax
jle 0x47628c
mov ecx, eax
sar ecx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x475f16
cmp dword [esp + 0x28], 0
jne 0x4774d0
cmp byte [edi], 0x52
jne 0x4762df
xor eax, eax
lea ecx, [eax + 1]
cmp esi, ecx
jle 0x4762c6
movzx edx, byte [ecx + edi]
test byte [edx + 0x4b5520], 4
je 0x4774e2
inc ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
cmp ecx, esi
jl 0x4762a5
test eax, eax
jne 0x4762cb
mov eax, 0xffff
mov ecx, eax
sar ecx, 8
mov byte [ebx + 3], 0x66
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x475f16
cmp esi, 6
jne 0x476308
push esi
push str.DEFINE
push edi
call fcn.00489cb1
add esp, 0xc
test eax, eax
jne 0x476308
mov byte [ebx + 3], 0x68
mov dword [esp + 0x24], 1
jmp 0x475f16
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4774f4
cmp eax, dword [ebp + 0x38]
jg 0x4774f4
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
jmp 0x475f16
mov dword [esp + 0x20], 0x58
jmp 0x475f0a
mov ebp, dword [esp + 0x12c]
inc edi
mov dword [esp + 0x10], edi
cmp byte [edi], 0x29
jne 0x47636f
mov byte [ebx], 0x73
inc ebx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x18]
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
mov dword [esp + 0x20], 0x59
jmp 0x475f16
mov cl, byte [edi + 1]
cmp cl, 0x21
je 0x4763d8
mov ebp, dword [esp + 0x12c]
cmp cl, 0x3d
je 0x4763c4
mov edx, dword [ebp + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
jne 0x47650f
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
inc edi
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x18
xor eax, eax
pop ebx
add esp, 0xfc
ret
add edi, 2
mov dword [esp + 0x20], 0x5a
mov dword [esp + 0x10], edi
jmp 0x475f16
mov dword [esp + 0x20], 0x5b
add edi, 2
jmp 0x475f0b
mov dword [esp + 0x20], 0x5d
jmp 0x475f0a
mov byte [ebx], 0x53
mov edi, dword [esp + 0x10]
mov esi, edi
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
xor edx, edx
xor eax, eax
test byte [ecx + 0x4b5520], 4
mov dword [esp + 0x6c], ebx
mov dword [esp + 0xc0], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], esi
je 0x47644c
lea ebx, [ebx]
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 + 0x4b5520], 4
jne 0x476430
mov dword [esp + 0x30], edx
mov cl, byte [edi]
cmp cl, 0x29
je 0x4764a4
test cl, cl
je 0x47750c
cmp cl, 0x3a
je 0x476466
mov dword [esp + 0x30], eax
mov edi, esi
lea ecx, [edi + 1]
mov dword [esp + 0x7c], ecx
lea ecx, [ecx]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x47750c
cmp al, 0x29
jne 0x476470
test al, al
je 0x47750c
sub edi, ecx
push edi
push ecx
call dword [0x4c3108]
mov edi, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x47750c
mov ecx, dword [esp + 0x30]
cmp ecx, 0xff
jg 0x47752f
mov ebp, dword [esp + 0x12c]
mov byte [ebx + 1], cl
mov dword [ebx + 2], eax
mov eax, dword [esp + 0x10]
sub eax, dword [ebp + 0x18]
inc eax
sar eax, 8
mov byte [ebx + 6], al
mov cl, byte [esp + 0x10]
sub cl, byte [ebp + 0x18]
mov word [ebx + 8], 0
inc cl
mov byte [ebx + 7], cl
add ebx, 0xa
jmp 0x47634f
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
cmp al, 0x3d
je 0x4765a9
cmp al, 0x3e
je 0x4765a9
cmp al, 0x3c
jne 0x477552
mov ebp, dword [esp + 0x12c]
mov esi, dword [ebp + 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 + esi], 0x10
mov dword [esp + 0x18], ecx
je 0x476544
mov eax, esi
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
test byte [esi + eax], 0x10
jne 0x476536
mov eax, edi
sub eax, ecx
cmp dword [esp + 0x130], 0
mov dword [esp + 0x30], eax
je 0x4765be
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x477575
cmp dword [ebp + 0x2c], 0x2710
jge 0x477598
lea ecx, [eax + 3]
cmp ecx, dword [ebp + 0x30]
jle 0x476772
mov dword [ebp + 0x30], ecx
cmp eax, 0x20
jle 0x476772
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x30
xor eax, eax
pop ebx
add esp, 0xfc
ret
xor edx, edx
cmp al, 0x3e
sete dl
mov dword [esp + 0x24], edx
mov edx, 0x29
jmp 0x476cfe
mov eax, dword [esp + 0x12c]
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
cmp eax, ecx
jle 0x4766e1
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
lea ecx, [esi + 2]
cmp edx, 4
jb 0x47660a
mov eax, dword [ebp]
cmp eax, dword [ecx]
jne 0x47660e
sub edx, 4
add ecx, 4
add ebp, 4
cmp edx, 4
jae 0x4765f5
test edx, edx
je 0x47665a
movzx eax, byte [ebp]
movzx esi, byte [ecx]
sub eax, esi
jne 0x47664a
cmp edx, 1
jbe 0x476656
movzx eax, byte [ebp + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x47664a
cmp edx, 2
jbe 0x476656
movzx eax, byte [ebp + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x47664a
cmp edx, 3
jbe 0x476656
movzx eax, byte [ebp + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov esi, dword [esp + 0x24]
sar eax, 0x1f
or eax, 1
jmp 0x47665c
mov esi, dword [esp + 0x24]
xor eax, eax
mov edx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x4766a2
mov eax, dword [esp + 0x30]
cmp byte [esi + eax + 2], 0
jne 0x4766bf
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or ecx, eax
mov eax, dword [edx + 0x34]
inc eax
cmp ecx, eax
je 0x476698
test dword [esp + 0x2c], 0x80000
je 0x4775bb
mov dword [esp + 0x14], 1
jmp 0x4766a4
js 0x4766bf
mov eax, dword [esp + 0x1c]
add esi, dword [edx + 0x30]
inc eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], eax
cmp eax, dword [edx + 0x2c]
jl 0x4765e5
jmp 0x4766da
mov edx, dword [edx + 0x30]
sub ecx, dword [esp + 0x1c]
imul ecx, edx
push ecx
add edx, esi
push esi
push edx
call fcn.00486da0
mov edi, dword [esp + 0x1c]
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x476734
mov ecx, dword [esp + 0x12c]
mov eax, dword [ecx + 0x28]
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [ecx + 0x2c], edx
jle 0x476734
cmp eax, esi
je 0x47671f
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0x12c]
mov ebp, dword [ecx + 0x34]
inc ebp
cmp edx, ebp
je 0x4775de
mov edx, dword [esp + 0x1c]
jmp 0x476727
mov ecx, dword [esp + 0x12c]
dec edx
add eax, dword [ecx + 0x30]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [ecx + 0x2c]
jl 0x4766f6
mov eax, dword [esp + 0x12c]
mov edx, dword [eax + 0x34]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
inc edx
sar edx, 8
mov byte [esi], dl
mov al, byte [eax + 0x34]
push edi
push ecx
lea edx, [esi + 2]
inc al
push edx
mov byte [esi + 1], al
call fcn.00489760
mov ebp, dword [esp + 0x138]
mov byte [esi + edi + 2], 0
mov edi, dword [esp + 0x1c]
add esp, 0xc
inc dword [ebp + 0x2c]
inc edi
mov dword [esp + 0x10], edi
inc dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
sar eax, 8
mov byte [ebx + 3], al
mov cl, byte [ebp + 0x34]
mov byte [ebx + 4], cl
mov dword [esp + 0x24], 2
jmp 0x475f16
mov edx, 0x29
mov dword [esp + 0x24], 1
jmp 0x476cfe
inc edi
mov dword [esp + 0x10], edi
mov edx, 0x29
jmp 0x4769ad
test dword [esp + 0x2c], 0x1000
mov ebp, dword [esp + 0x12c]
je 0x47677a
mov dword [esp + 0x20], 0x5e
jmp 0x475f16
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x11c]
push 0
push edx
push eax
mov eax, dword [ebp + 0x34]
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x8c], edi
call fcn.00471240
mov edx, eax
mov eax, dword [esp + 0x12c]
add esp, 0x10
cmp dword [eax], 0
jne 0x477737
test edx, edx
jns 0x477130
mov ebp, edx
neg ebp
cmp ebp, 0x1a
jne 0x476862
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x476847
cmp byte [edi + 2], 0x45
jne 0x476847
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x6c]
add edi, 2
inc edi
xor edx, edx
jmp 0x473cbe
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x5c], 1
xor edx, edx
jmp 0x473cbe
cmp ebp, 0x19
je 0x4771e4
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x476885
cmp ebp, 5
jle 0x476885
cmp ebp, 0x17
jge 0x476885
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ecx
cmp ebp, 0x1b
jne 0x476cb4
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x12c]
mov eax, dword [edx + 0x24]
inc edi
xor edx, edx
mov dword [esp + 0x10], edi
cmp byte [edi], 0x3c
mov dword [esp + 0x60], eax
setne dl
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], eax
mov al, byte [edi + 1]
dec edx
and edx, 0x17
add edx, 0x27
mov dword [esp + 0x28], edx
cmp al, 0x2b
je 0x47695e
cmp al, 0x2d
je 0x47695e
mov al, byte [edi + 1]
lea ecx, [edi + 1]
mov dword [esp + 0x30], 1
test al, al
je 0x476923
movzx eax, al
cmp eax, edx
je 0x476923
mov edx, dword [esp + 0x12c]
mov edx, dword [edx + 0xc]
mov al, byte [eax + edx]
test al, 4
jne 0x476913
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x28]
test al, 0x10
je 0x476923
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4768f3
movzx eax, byte [ecx]
cmp eax, edx
je 0x47694a
mov ecx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x12c]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
cmp dword [esp + 0x30], 0
jne 0x4769a8
mov dword [esp + 0x24], 1
jmp 0x476cfe
movzx edx, byte [edi + 2]
lea eax, [edi + 2]
mov cl, 4
test byte [edx + 0x4b5520], cl
je 0x47697d
nop
movzx edx, byte [eax + 1]
inc eax
test byte [edx + 0x4b5520], cl
jne 0x476970
movzx eax, byte [eax]
mov edx, dword [esp + 0x28]
cmp eax, edx
je 0x4769a8
mov ecx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x12c]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx esi, al
cmp esi, 0x2b
jne 0x4769ef
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [eax + 0x4b5520], 4
jne 0x476c0e
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x3f
xor eax, eax
pop ebx
add esp, 0xfc
ret
cmp esi, 0x2d
jne 0x476c0e
movzx ecx, byte [edi + 1]
test byte [ecx + 0x4b5520], 4
jne 0x476c09
xor esi, esi
xor edx, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x30]
cmp al, 0x29
je 0x476a8b
lea esi, [edx + 0x10]
mov edx, dword [esp + 0x12c]
cmp al, 0x3a
je 0x476a83
movzx eax, al
inc edi
sub eax, 0x2d
mov dword [esp + 0x10], edi
cmp eax, 0x4b
ja case.0x476a46.46
movzx eax, byte [eax + 0x477970]
jmp dword [eax*4 + 0x47794c]
lea ecx, [esp + 0x28]
jmp 0x476a7d
or dword [ecx], 0x80000
or dword [edx + 0x48], esi
jmp 0x476a7d
or dword [ecx], 1
jmp 0x476a7d
or dword [ecx], 2
jmp 0x476a7d
or dword [ecx], 4
jmp 0x476a7d
or dword [ecx], 8
jmp 0x476a7d
or dword [ecx], 0x200
jmp 0x476a7d
or dword [ecx], 0x40
mov al, byte [edi]
cmp al, 0x29
jne 0x476a27
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
or edx, ebp
not esi
and edx, esi
cmp byte [edi], 0x29
mov eax, edx
mov dword [esp + 0x78], eax
jne case.0x475e99.58
mov edx, dword [esp + 0x12c]
mov ecx, dword [edx + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x476aca
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x476ac5
cmp dword [ecx], 6
jne 0x476aca
mov dword [edx + 0x44], eax
jmp 0x476b0e
mov edx, eax
xor edx, ebp
test dl, 7
je 0x476ae9
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 ecx, eax
shr ecx, 9
and ecx, 1
mov dword [esp + 0xc8], ecx
xor ecx, 1
mov dword [esp + 0xcc], ecx
mov ecx, eax
and ecx, 1
shl ecx, 8
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x110]
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x18]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x473cbe
cmp ecx, 2
jg 0x477637
cmp ecx, 1
jne 0x475ffd
or esi, 0xffffffff
or eax, esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xbc], eax
jmp 0x47600b
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], ecx
cmp edx, 0x68
je 0x47426b
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb8], 0
cmp edx, 0x5d
jl 0x476be0
cmp ecx, 0xfffffffe
jne 0x476bc9
test eax, eax
js 0x476bb7
mov dword [esp + 0x38], eax
mov dword [esp + 0xb8], 1
mov dword [esp + 0x54], 0xffffffff
jmp 0x476be9
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x476be9
test eax, eax
js 0x476be9
test esi, esi
jns 0x476bf1
or eax, dword [esp + 0x64]
mov esi, eax
mov dword [esp + 0xa4], esi
jmp 0x476be9
cmp edx, 0x58
jne 0x47426b
test esi, esi
js 0x47426b
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x18]
inc edi
xor edx, edx
jmp 0x473cbe
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [eax + 0x4b5520], 4
mov dword [esp + 0x1c], ecx
je 0x476c3c
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 + 0x4b5520], 4
jne 0x476c20
mov dword [esp + 0x1c], ecx
movzx eax, byte [edi]
cmp eax, edx
jne 0x47768f
cmp esi, 0x2d
jne 0x476c90
test ecx, ecx
je 0x4776b2
mov edx, dword [esp + 0x12c]
mov eax, dword [edx + 0x34]
sub eax, ecx
inc eax
mov dword [esp + 0x1c], eax
test eax, eax
jg 0x476dee
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xf
xor eax, eax
pop ebx
add esp, 0xfc
ret
cmp esi, 0x2b
jne 0x476dee
test ecx, ecx
je 0x47748a
mov eax, dword [esp + 0x12c]
add ecx, dword [eax + 0x34]
mov dword [esp + 0x1c], ecx
jmp 0x476dee
mov ecx, dword [esp + 0x10]
cmp ebp, 0x1c
jne 0x476f85
mov al, byte [ecx + 1]
lea edi, [ecx + 1]
cmp al, 0x3c
je 0x476cd7
cmp al, 0x27
je 0x476cd7
cmp al, 0x7b
jne 0x476f85
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x24], 0
cmp al, 0x3c
jne 0x476cf0
mov edx, 0x3e
jmp 0x476cfe
xor edx, edx
cmp al, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
mov eax, dword [esp + 0x12c]
mov ebp, dword [eax + 0xc]
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
test byte [esi + ebp], 0x10
mov ecx, edi
mov dword [esp + 0x18], ecx
je 0x476d2e
mov eax, ebp
mov edi, edi
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
test byte [esi + eax], 0x10
jne 0x476d20
mov ebp, edi
xor eax, eax
sub ebp, ecx
cmp dword [esp + 0x130], eax
je 0x476d62
cmp ebp, eax
je 0x4776d5
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x4776f8
cmp ebp, 0x20
jg 0x476586
mov dword [esp + 0x1c], eax
jmp 0x476de3
mov esi, dword [esp + 0x12c]
mov edi, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x2c], eax
jle 0x476da2
mov eax, dword [esp + 0x18]
push ebp
lea edx, [edi + 2]
push edx
push eax
call fcn.00489cb1
add esp, 0xc
test eax, eax
jne 0x476d91
cmp byte [edi + ebp + 2], al
je 0x476da2
mov eax, dword [esp + 0x1c]
add edi, dword [esi + 0x30]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esi + 0x2c]
jl 0x476d75
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esi + 0x2c]
jge 0x476dbd
movzx edx, byte [edi]
movzx eax, byte [edi + 1]
shl edx, 8
or eax, edx
mov dword [esp + 0x1c], eax
jmp 0x476de3
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
shr eax, 3
and eax, 1
push eax
push ebp
push ecx
push esi
call fcn.00471be0
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x47771b
cmp dword [esp + 0x24], 0
je 0x476f99
cmp dword [esp + 0x130], 0
mov edx, dword [esp + 0x12c]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], eax
jne 0x476f1f
cmp dword [esp + 0x1c], 0
mov byte [ebx], 0
je 0x476e2e
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov eax, edx
mov eax, dword [eax + 0x14]
call fcn.00472270
mov dword [esp + 0x24], eax
test eax, eax
jne 0x476ee1
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x12c]
mov ecx, dword [esi + 0x18]
lea edx, [esp + 0xc4]
push edx
shr edi, 3
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x20]
and edi, 1
push edi
push eax
push 0
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
push esi
push ecx
call fcn.00471860
add esp, 0x18
test eax, eax
jg 0x476eab
mov ebp, dword [esp + 0x24]
mov dl, byte [ebp]
inc ebp
mov dword [esp + 0x24], ebp
test dl, dl
je 0x476ea9
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xc4]
push eax
push edi
push ecx
push 0
lea edx, [esp + 0x34]
push esi
push edx
call fcn.00471860
add esp, 0x18
test eax, eax
jle 0x476e77
test eax, eax
js 0x4774d0
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov edx, ebx
sub edx, eax
mov eax, dword [esi + 0x24]
add edx, 4
mov dword [esp + 0x24], ecx
sar edx, 8
mov byte [eax], dl
mov edx, dword [esi + 0x24]
mov cl, bl
sub cl, byte [esi + 0x14]
add cl, 4
mov byte [edx + 1], cl
add dword [esi + 0x24], 2
jmp 0x476f1b
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
jne 0x476f1f
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push ebx
push eax
call fcn.00472860
add esp, 0x14
test eax, eax
jne 0x47772a
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x12c]
mov ebp, dword [esp + 0x12c]
mov dword [ebx], 0x5206005d
mov edx, eax
sub edx, dword [esi + 0x14]
mov cl, 6
sar edx, 8
mov byte [ebx + 4], dl
sub al, byte [esi + 0x14]
mov esi, dword [esp + 0x18]
mov byte [ebx + 5], al
mov word [ebx + 6], 0x55
mov byte [ebx + 8], cl
mov edi, dword [esp + 0x10]
add ebx, 9
cmp dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x14], ebx
mov dword [esp + 0x70], 9
jne 0x475068
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x38], 0xffffffff
xor edx, edx
jmp 0x473cbe
cmp ebp, 0x23
jl 0x47703f
mov eax, 0xffffffdd
sub eax, edx
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x38], 0xfffffffe
jne 0x476fa8
mov dword [esp + 0x38], 0xffffffff
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x51
mov byte [ebx + 1], al
mov dword [esp + 0x18], ebx
mov byte [ebx + 2], cl
add ebx, 3
mov dword [esp + 0x14], ebx
mov eax, 1
cmp ecx, 0x20
jge 0x476fd1
shl eax, cl
mov edx, dword [esp + 0x12c]
or dword [edx + 0x40], eax
cmp ecx, dword [edx + 0x3c]
jle 0x476fe3
mov dword [edx + 0x3c], ecx
mov eax, dword [edx + 0x20]
test eax, eax
je 0x475059
mov ecx, dword [esp + 0x1c]
movzx edx, word [eax + 4]
cmp edx, ecx
je 0x47701b
mov eax, dword [eax]
test eax, eax
jne 0x476ff2
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x18]
mov ecx, 1
mov word [eax + 6], cx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
cmp ebp, 0xf
je 0x4770ba
cmp ebp, 0x10
je 0x4770ba
cmp ebp, 0x1d
jl 0x477080
cmp ebp, 0x22
jg 0x477080
mov ebp, dword [esp + 0x12c]
lea edx, [edx*4 + 0x74]
mov eax, 0x4bd2f0
sub eax, edx
mov edi, dword [eax]
inc ecx
dec edi
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
cmp ebp, 5
jle 0x47708e
mov dword [esp + 0x18], ebx
cmp ebp, 0x17
jl 0x477096
mov dword [esp + 0x18], 0
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
neg dl
mov byte [ebx], dl
mov edi, dword [esp + 0x10]
inc ebx
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
mov ecx, dword [esp + 0x11c]
push ecx
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xec]
call fcn.00471640
add esp, 0xc
test eax, eax
js 0x477737
xor ecx, ecx
cmp ebp, 0x10
mov ebp, dword [esp + 0x12c]
sete cl
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x6c]
setne dl
add dl, 0xf
mov byte [ebx], dl
mov byte [ebx + 1], al
mov al, byte [esp + 0xe4]
mov byte [ebx + 2], al
mov edi, dword [esp + 0x10]
add ebx, 3
inc edi
mov dword [esp + 0x14], ebx
xor edx, edx
jmp 0x473cbe
cmp dword [esp + 0x34], 0
je 0x47714f
cmp edx, 0x7f
jle 0x47714f
lea eax, [esp + 0xa8]
call fcn.00484dd0
mov ebp, eax
jmp 0x473ea8
mov byte [esp + 0xa8], dl
mov ebp, 1
jmp 0x473ea8
movzx eax, cl
or eax, dword [esp + 0x74]
mov dword [esp + 0x38], eax
cmp ebp, 1
je 0x475059
movzx eax, byte [ebx - 1]
mov ecx, dword [esp + 0x12c]
or eax, dword [ecx + 0x4c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ebp, ecx
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x50], eax
xor edx, edx
jmp 0x473cbe
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], edx
cmp ebp, 1
je 0x4771b8
cmp dword [esp + 0x74], 0
jne 0x475059
movzx eax, byte [ebx - 1]
mov ecx, dword [esp + 0x12c]
or eax, dword [ecx + 0x4c]
mov edi, dword [esp + 0x10]
or eax, dword [esp + 0x74]
mov esi, dword [esp + 0x18]
mov ebp, ecx
mov ecx, dword [esp + 0x6c]
inc edi
mov dword [esp + 0x50], eax
xor edx, edx
jmp 0x473cbe
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x6c]
inc edi
xor edx, edx
jmp 0x473cbe
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x34
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x14
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x34
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x130]
mov dword [eax], ecx
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x50]
mov dword [eax], ecx
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
mov dword [eax], ebx
mov dword [ecx], edi
cmp esi, edx
je 0x4772bd
mov eax, dword [esi]
mov ecx, dword [esp + 0xa0]
mov edx, ebx
mov ebp, 0x7fffffeb
sub edx, ecx
sub ebp, eax
cmp ebp, edx
jl 0x47721e
sub eax, ecx
add eax, ebx
mov dword [esi], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
xor edx, edx
cmp byte [edi + 1], 0x3a
setne dl
dec edx
and edx, 0xffffffee
add edx, 0x1f
mov dword [eax], edx
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x1f
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x1e
jmp 0x477737
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
mov dword [esi], 7
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 8
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 6
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 9
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x37
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x14
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3c
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x42
jmp 0x477737
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3b
jmp 0x477737
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x1c
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
dec edi
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x1a
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x3a
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xf
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xf
jmp 0x477737
mov edx, dword [esp + 0x11c]
mov dword [edx], 0xf
jmp 0x477737
mov ecx, dword [esp + 0x11c]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [ecx], eax
jmp 0x477737
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x27
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x26
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x29
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x2a
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x31
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x2b
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x41
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xc
mov eax, dword [esp + 0x118]
dec edi
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x36
jmp 0x477737
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x1b
jmp 0x477737
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xe
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x14
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [edx], 0x1d
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3a
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3e
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2a
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xf
jmp 0x477737
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x28
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x118]
mov dword [eax], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret