Function at 0x49a320
Capabilities:
Encode data using xor

Disassembly:
test byte [0xfffff288], cl
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c5359
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5ec
push ebx
mov dword [ebp - 0x5b4], ecx
mov byte [ebp - 0x2b5], 1
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2a8], 0
fldz
fstp qword [ebp - 0x2b4]
fldz
fstp qword [ebp - 0x2c4]
fldz
fstp qword [ebp - 0x2c4]
jmp 0x49a38c
fld qword [ebp - 0x2c4]
fadd qword [0x9c8ae8]
fstp qword [ebp - 0x2c4]
fld qword [0x9ca688]
fcomp qword [ebp - 0x2c4]
fnstsw ax
test ah, 0x41
jne 0x49a415
fld qword [0x9ca680]
fmul qword [ebp - 0x2c4]
fmul qword [ebp - 0x2c4]
fld qword [ebp - 0x2c4]
fmul qword [ebp - 0x2c4]
fsubp st(1)
fld qword [0x9ca678]
fmul qword [ebp - 0x2c4]
fmul qword [ebp - 0x2c4]
fadd qword [0x9ca670]
fdivp st(1)
fadd qword [ebp - 0x2b4]
fstp qword [ebp - 0x2b4]
fld qword [0x9ca668]
fcomp qword [ebp - 0x2b4]
fnstsw ax
test ah, 5
jp 0x49a410
fld qword [0x9ca660]
fmul qword [ebp - 0x2c4]
fsubr qword [ebp - 0x2b4]
fstp qword [ebp - 0x2b4]
jmp 0x49a37a
fldz
fcomp qword [ebp - 0x2b4]
fnstsw ax
invalid
test ah, 0x41
les eax, [ecx + 0x75]
and dl, byte [eax + 0x34]
jnp 0x49a482
inc ecx
jne 0x49a446
push eax
xor al, 0x7b
pop edx
push 0x56
dec edx
imul ebx, dword [eax + ecx*2 + 0x3d], 0x70
sub eax, 0x4642344e
inc ebx
je 0x49a421
jns 0x49a41f
jp 0x49a420
jp 0x49a41b
and al, 0x77
jmp 0x49bbb3
mov dword [ebp - 0x2cc], 0x49a437
mov dword [ebp - 0x2a8], 0x49a424
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x2d4], ecx
mov byte [ebp - 0x41d], 0x17
mov dword [ebp - 0x408], 0
jmp 0x49a494
add bl, ch
jnp 0x459d1f
mov edx, dword [ebp - 0x408]
add edx, 1
mov dword [ebp - 0x408], edx
inc dword [ebx - 0x6a76fe3e]
clc
sti
invalid
cmp dword [ebp - 0x408], 0x100
jae 0x49a4b5
mov eax, dword [ebp - 0x408]
mov cl, byte [ebp - 0x408]
mov byte [ebp + eax - 0x3ec], cl
jmp 0x49a485
mov dword [ebp - 0x2e8], 0
mov byte [ebp - 0x41e], 0
mov dword [ebp - 0x408], 0xff
jmp 0x49a4e1
mov edx, dword [ebp - 0x408]
sub edx, 1
mov dword [ebp - 0x408], edx
cmp dword [ebp - 0x408], 0
jbe 0x49a7f9
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x42c], 1
mov eax, dword [ebp - 0x42c]
cmp eax, dword [ebp - 0x408]
jae 0x49a522
mov ecx, dword [ebp - 0x42c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x42c], edx
jmp 0x49a502
mov eax, dword [ebp - 0x2e8]
mov dword [ebp - 0x5b8], eax
cmp dword [ebp - 0x5b8], 3
ja case.default.0x49a541
mov ecx, dword [ebp - 0x5b8]
jmp dword [ecx*4 + 0x49be54]
movzx edx, byte [ebp - 0x41e]
movzx ecx, byte [ebp + edx - 0x3ec]
fld qword [ebp - 0x2b4]
fnstcw word [ebp - 0x5ba]
movzx eax, word [ebp - 0x5ba]
or eax, 0xc00
mov dword [ebp - 0x5c0], eax
fldcw word [ebp - 0x5c0]
fistp qword [ebp - 0x5c8]
fldcw word [ebp - 0x5ba]
mov edx, dword [ebp - 0x5c8]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x41e], cl
jmp 0x49a6d2
movzx eax, byte [ebp - 0x41e]
movzx ecx, byte [ebp + eax - 0x3ec]
fld qword [ebp - 0x2b4]
fnstcw word [ebp - 0x5ca]
movzx eax, word [ebp - 0x5ca]
or eax, 0xc00
mov dword [ebp - 0x5d0], eax
fldcw word [ebp - 0x5d0]
fistp qword [ebp - 0x5d8]
fldcw word [ebp - 0x5ca]
mov edx, dword [ebp - 0x5d8]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x41e], cl
jmp 0x49a6d2
movzx eax, byte [ebp - 0x41e]
movzx ecx, byte [ebp + eax - 0x3ec]
fld qword [ebp - 0x2b4]
fnstcw word [ebp - 0x5da]
movzx eax, word [ebp - 0x5da]
or eax, 0xc00
mov dword [ebp - 0x5e0], eax
fldcw word [ebp - 0x5e0]
fistp qword [ebp - 0x5e8]
fldcw word [ebp - 0x5da]
mov edx, dword [ebp - 0x5e8]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x41e], cl
jmp 0x49a6d2
movzx eax, byte [ebp - 0x41e]
movzx ecx, byte [ebp + eax - 0x3ec]
fld qword [ebp - 0x2b4]
fnstcw word [ebp - 0x5ea]
movzx eax, word [ebp - 0x5ea]
or eax, 0xc00
mov dword [ebp - 0x5f0], eax
fldcw word [ebp - 0x5f0]
fistp qword [ebp - 0x5f8]
fldcw word [ebp - 0x5ea]
mov edx, dword [ebp - 0x5f8]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x41e], cl
jmp 0x49a6d2
movzx eax, byte [ebp - 0x41e]
movzx ecx, byte [ebp + eax - 0x3ec]
mov edx, dword [ebp - 0x2d4]
add edx, dword [ebp - 0x2e8]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x41e], cl
mov ecx, dword [ebp - 0x2e8]
add ecx, 1
mov dword [ebp - 0x2e8], ecx
movzx edx, byte [ebp - 0x41d]
cmp dword [ebp - 0x2e8], edx
jb 0x49a710
mov dword [ebp - 0x2e8], 0
movzx eax, byte [ebp - 0x41d]
movzx ecx, byte [ebp - 0x41e]
add ecx, eax
mov byte [ebp - 0x41e], cl
movzx edx, byte [ebp - 0x41e]
and edx, dword [ebp - 0x42c]
mov dword [ebp - 0x428], edx
mov eax, dword [ebp - 0x424]
add eax, 1
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0xb
jbe 0x49a74f
mov eax, dword [ebp - 0x428]
xor edx, edx
div dword [ebp - 0x408]
mov dword [ebp - 0x428], edx
mov ecx, dword [ebp - 0x428]
cmp ecx, dword [ebp - 0x408]
ja 0x49a522
mov edx, dword [ebp - 0x408]
cmp edx, dword [ebp - 0x428]
je 0x49a7f4
mov eax, dword [ebp - 0x428]
movzx ecx, byte [ebp + eax - 0x3ec]
mov edx, dword [ebp - 0x408]
movzx eax, byte [ebp + edx - 0x3ec]
xor eax, ecx
mov ecx, dword [ebp - 0x408]
mov byte [ebp + ecx - 0x3ec], al
mov edx, dword [ebp - 0x408]
movzx eax, byte [ebp + edx - 0x3ec]
mov ecx, dword [ebp - 0x428]
movzx edx, byte [ebp + ecx - 0x3ec]
xor edx, eax
mov eax, dword [ebp - 0x428]
mov byte [ebp + eax - 0x3ec], dl
mov ecx, dword [ebp - 0x428]
movzx edx, byte [ebp + ecx - 0x3ec]
mov eax, dword [ebp - 0x408]
movzx ecx, byte [ebp + eax - 0x3ec]
xor ecx, edx
mov edx, dword [ebp - 0x408]
mov byte [ebp + edx - 0x3ec], cl
jmp 0x49a4d2
mov al, byte [ebp - 0x3eb]
mov byte [ebp - 0x41f], al
mov cl, byte [ebp - 0x3e9]
mov byte [ebp - 0x2e9], cl
mov dl, byte [ebp - 0x3e7]
mov byte [ebp - 0x3f5], dl
mov al, byte [ebp - 0x3e5]
mov byte [ebp - 0x409], al
fld qword [0x9ca658]
fstp qword [ebp - 0x3f4]
fld qword [0x9ca650]
fstp qword [ebp - 0x2e4]
fld qword [0x9ca648]
fstp qword [ebp - 0x41c]
fld qword [0x9ca640]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x3f4]
fadd qword [ebp - 0x404]
fstp qword [ebp - 0x3f4]
fld qword [ebp - 0x41c]
fsub qword [ebp - 0x404]
fstp qword [ebp - 0x41c]
fld qword [ebp - 0x2e4]
fmul qword [ebp - 0x404]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x3f4]
fmul qword [ebp - 0x404]
fstp qword [ebp - 0x3f4]
fld qword [ebp - 0x41c]
fcomp qword [ebp - 0x3f4]
fnstsw ax
test ah, 0x41
jne 0x49a9ef
fld qword [ebp - 0x404]
fdiv qword [ebp - 0x2e4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x404]
fsub qword [ebp - 0x2e4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x2e4]
fmul qword [ebp - 0x404]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x41c]
fmul qword [ebp - 0x3f4]
fstp qword [ebp - 0x41c]
fld qword [ebp - 0x404]
fdiv qword [ebp - 0x3f4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x404]
fsub qword [ebp - 0x3f4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x41c]
fmul qword [ebp - 0x404]
fstp qword [ebp - 0x41c]
fld qword [ebp - 0x404]
fadd qword [ebp - 0x3f4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x41c]
fcomp qword [ebp - 0x3f4]
fnstsw ax
test ah, 0x41
jne 0x49a9a5
fld qword [ebp - 0x2e4]
fsub qword [ebp - 0x41c]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x2e4]
fmul qword [ebp - 0x41c]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x2e4]
fsub qword [ebp - 0x41c]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x41c]
fsub qword [ebp - 0x404]
fstp qword [ebp - 0x41c]
jmp 0x49a9ed
fld qword [ebp - 0x404]
fdiv qword [ebp - 0x3f4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x41c]
fdiv qword [ebp - 0x404]
fstp qword [ebp - 0x41c]
fld qword [ebp - 0x404]
fsub qword [ebp - 0x3f4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x41c]
fsub qword [ebp - 0x404]
fstp qword [ebp - 0x41c]
jmp 0x49aa4b
fld qword [ebp - 0x404]
fadd qword [ebp - 0x2e4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x2e4]
fsub qword [ebp - 0x404]
fstp qword [ebp - 0x2e4]
fld qword [ebp - 0x404]
fsub qword [ebp - 0x2e4]
fstp qword [ebp - 0x404]
fld qword [ebp - 0x404]
fadd qword [ebp - 0x2e4]
fstp qword [ebp - 0x404]
movzx ecx, byte [ebp - 0x41e]
mov dl, byte [ebp + ecx - 0x3ec]
mov byte [ebp - 0x2cd], dl
mov dword [ebp - 0x410], 0xa
cmp dword [ebp - 0x410], 2
jle 0x49bb7d
mov eax, dword [ebp - 0x410]
and eax, 1
jne 0x49bb7d
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x49c], 0
mov ecx, dword [ebp - 0x49c]
add ecx, 1
mov dword [ebp - 0x49c], ecx
mov dword [ebp - 0x440], 0
mov edx, dword [ebp - 0x4a0]
shl edx, 1
mov dword [ebp - 0x440], edx
mov dword [ebp - 0x4c8], 0
mov eax, dword [ebp - 0x2d8]
add eax, dword [ebp - 0x440]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], ecx
mov dword [ebp - 0x478], 0
mov edx, dword [ebp - 0x478]
add edx, 0xdd
mov dword [ebp - 0x478], edx
mov dword [ebp - 0x488], 0
mov eax, dword [ebp - 0x4a0]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x488], ecx
mov dword [ebp - 0x4d8], 0
mov edx, dword [ebp - 0x2d8]
add edx, dword [ebp - 0x488]
movzx eax, byte [edx]
add eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4c4], 0
mov ecx, dword [ebp - 0x4c4]
add ecx, 0x71
mov dword [ebp - 0x4c4], ecx
mov dword [ebp - 0x4d4], 0
mov edx, dword [ebp - 0x4c8]
sub edx, dword [ebp - 0x478]
add edx, dword [ebp - 0x4d4]
mov dword [ebp - 0x4d4], edx
mov dword [ebp - 0x458], 0
mov eax, dword [ebp - 0x4d8]
sub eax, dword [ebp - 0x4c4]
add eax, dword [ebp - 0x458]
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x4d0], 0
mov ecx, dword [ebp - 0x4d4]
shl ecx, 4
mov dword [ebp - 0x4d0], ecx
mov dword [ebp - 0x4c0], 0
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x4c0], edx
mov dword [ebp - 0x498], 0
mov eax, dword [ebp - 0x4d0]
or eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x498], eax
mov byte [ebp - 0x479], 0
mov cl, byte [ebp - 0x498]
mov byte [ebp - 0x479], cl
mov byte [ebp - 0x4c9], 0
movzx edx, byte [ebp - 0x2cd]
mov al, byte [ebp + edx - 0x3ec]
mov byte [ebp - 0x4c9], al
movzx ecx, byte [ebp - 0x41f]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx eax, byte [ebp - 0x2e9]
add eax, edx
mov byte [ebp - 0x2e9], al
mov cl, byte [ebp - 0x41f]
add cl, 1
mov byte [ebp - 0x41f], cl
movzx edx, byte [ebp - 0x2e9]
movzx eax, byte [ebp - 0x2cd]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x409]
movzx eax, byte [ebp - 0x2e9]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x41f]
movzx eax, byte [ebp - 0x409]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
fld qword [0x9ca638]
fstp qword [ebp - 0x474]
fld qword [0x9ca630]
fstp qword [ebp - 0x454]
fld qword [0x9ca628]
fstp qword [ebp - 0x4bc]
fld qword [0x9ca620]
fstp qword [ebp - 0x494]
fld qword [ebp - 0x474]
fadd qword [ebp - 0x494]
fstp qword [ebp - 0x474]
fld qword [ebp - 0x474]
fsub qword [ebp - 0x494]
fstp qword [ebp - 0x474]
fld qword [ebp - 0x454]
fadd qword [ebp - 0x494]
fstp qword [ebp - 0x454]
fld qword [ebp - 0x454]
fadd qword [ebp - 0x494]
fstp qword [ebp - 0x454]
fld qword [ebp - 0x494]
fcomp qword [ebp - 0x454]
fnstsw ax
test ah, 5
jp 0x49ad6c
fld qword [ebp - 0x474]
fadd qword [ebp - 0x4bc]
fstp qword [ebp - 0x474]
fld qword [ebp - 0x454]
fadd qword [ebp - 0x494]
fstp qword [ebp - 0x454]
fld qword [ebp - 0x494]
fadd qword [ebp - 0x454]
fstp qword [ebp - 0x494]
fld qword [ebp - 0x454]
fadd qword [ebp - 0x494]
fstp qword [ebp - 0x454]
movzx edx, byte [ebp - 0x41f]
mov al, byte [ebp - 0x4c9]
mov byte [ebp + edx - 0x3ec], al
jmp 0x49adb4
fld qword [ebp - 0x474]
fadd qword [ebp - 0x454]
fstp qword [ebp - 0x474]
fld qword [ebp - 0x474]
fmul qword [ebp - 0x454]
fstp qword [ebp - 0x474]
fld qword [ebp - 0x494]
fsub qword [ebp - 0x474]
fstp qword [ebp - 0x494]
fld qword [ebp - 0x474]
fsub qword [ebp - 0x454]
fstp qword [ebp - 0x474]
movzx ecx, byte [ebp - 0x4c9]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx eax, byte [ebp - 0x3f5]
add eax, edx
mov byte [ebp - 0x3f5], al
movzx ecx, byte [ebp - 0x479]
movzx edx, byte [ebp - 0x2e9]
movzx eax, byte [ebp + edx - 0x3ec]
movzx edx, byte [ebp - 0x41f]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3ec]
xor ecx, eax
movzx edx, byte [ebp - 0x409]
movzx eax, byte [ebp + edx - 0x3ec]
movzx edx, byte [ebp - 0x2cd]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
movzx edx, byte [ebp - 0x3f5]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp + eax - 0x3ec]
xor ecx, edx
mov byte [ebp - 0x409], cl
mov al, byte [ebp - 0x479]
mov byte [ebp - 0x2cd], al
mov cl, byte [ebp - 0x409]
mov byte [ebp - 0x4ad], cl
cmp dword [ebp - 0x4a0], 0
jle 0x49ae8d
movsx dx, byte [ebp - 0x4ad]
mov eax, dword [ebp - 0x4a0]
mov word [ebp + eax*2 - 0x27a], dx
mov ecx, dword [ebp - 0x4a0]
add ecx, 1
mov dword [ebp - 0x4a0], ecx
mov edx, dword [ebp - 0x49c]
add edx, 1
mov dword [ebp - 0x49c], edx
mov eax, dword [ebp - 0x4a0]
shl eax, 1
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x2d8]
add ecx, dword [ebp - 0x440]
movzx edx, byte [ecx]
mov dword [ebp - 0x4c8], edx
mov dword [ebp - 0x478], 0xdd
mov eax, dword [ebp - 0x4a0]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x2d8]
add edx, dword [ebp - 0x488]
movzx eax, byte [edx]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4c4], 0x71
mov ecx, dword [ebp - 0x4c8]
sub ecx, dword [ebp - 0x478]
mov dword [ebp - 0x4d4], ecx
mov edx, dword [ebp - 0x4d8]
sub edx, dword [ebp - 0x4c4]
mov dword [ebp - 0x458], edx
mov eax, dword [ebp - 0x4d4]
shl eax, 4
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x458]
mov dword [ebp - 0x4c0], ecx
mov edx, dword [ebp - 0x4d0]
or edx, dword [ebp - 0x4c0]
mov dword [ebp - 0x498], edx
mov al, byte [ebp - 0x498]
mov byte [ebp - 0x479], al
movzx ecx, byte [ebp - 0x2cd]
mov dl, byte [ebp + ecx - 0x3ec]
mov byte [ebp - 0x4c9], dl
movzx eax, byte [ebp - 0x41f]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp - 0x2e9]
add edx, ecx
mov byte [ebp - 0x2e9], dl
mov al, byte [ebp - 0x41f]
add al, 1
mov byte [ebp - 0x41f], al
movzx ecx, byte [ebp - 0x2e9]
movzx edx, byte [ebp - 0x2cd]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x409]
movzx edx, byte [ebp - 0x2e9]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x41f]
movzx edx, byte [ebp - 0x409]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x41f]
mov dl, byte [ebp - 0x4c9]
mov byte [ebp + ecx - 0x3ec], dl
movzx eax, byte [ebp - 0x4c9]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp - 0x3f5]
add edx, ecx
mov byte [ebp - 0x3f5], dl
movzx eax, byte [ebp - 0x479]
movzx ecx, byte [ebp - 0x2e9]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx ecx, byte [ebp - 0x41f]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3ec]
xor eax, edx
movzx ecx, byte [ebp - 0x409]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx ecx, byte [ebp - 0x2cd]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
movzx ecx, byte [ebp - 0x3f5]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3ec]
movzx ecx, byte [ebp + edx - 0x3ec]
xor eax, ecx
mov byte [ebp - 0x409], al
mov dl, byte [ebp - 0x479]
mov byte [ebp - 0x2cd], dl
mov al, byte [ebp - 0x409]
mov byte [ebp - 0x4ad], al
cmp dword [ebp - 0x4a0], 0
jle 0x49b0e7
movsx cx, byte [ebp - 0x4ad]
mov edx, dword [ebp - 0x4a0]
mov word [ebp + edx*2 - 0x27a], cx
mov eax, dword [ebp - 0x4a0]
add eax, 1
mov dword [ebp - 0x4a0], eax
mov ecx, dword [ebp - 0x49c]
add ecx, 1
mov dword [ebp - 0x49c], ecx
mov edx, dword [ebp - 0x4a0]
shl edx, 1
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x2d8]
add eax, dword [ebp - 0x440]
movzx ecx, byte [eax]
mov dword [ebp - 0x4c8], ecx
mov dword [ebp - 0x478], 0xdd
mov edx, dword [ebp - 0x4a0]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x488], eax
mov ecx, dword [ebp - 0x2d8]
add ecx, dword [ebp - 0x488]
movzx edx, byte [ecx]
mov dword [ebp - 0x4d8], edx
mov dword [ebp - 0x4c4], 0x71
mov eax, dword [ebp - 0x4c8]
sub eax, dword [ebp - 0x478]
mov dword [ebp - 0x4d4], eax
mov ecx, dword [ebp - 0x4d8]
sub ecx, dword [ebp - 0x4c4]
mov dword [ebp - 0x458], ecx
mov edx, dword [ebp - 0x4d4]
shl edx, 4
mov dword [ebp - 0x4d0], edx
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x4c0], eax
mov ecx, dword [ebp - 0x4d0]
or ecx, dword [ebp - 0x4c0]
mov dword [ebp - 0x498], ecx
mov dl, byte [ebp - 0x498]
mov byte [ebp - 0x479], dl
movzx eax, byte [ebp - 0x2cd]
mov cl, byte [ebp + eax - 0x3ec]
mov byte [ebp - 0x4c9], cl
movzx edx, byte [ebp - 0x41f]
movzx eax, byte [ebp + edx - 0x3ec]
movzx ecx, byte [ebp - 0x2e9]
add ecx, eax
mov byte [ebp - 0x2e9], cl
mov dl, byte [ebp - 0x41f]
add dl, 1
mov byte [ebp - 0x41f], dl
movzx eax, byte [ebp - 0x2e9]
movzx ecx, byte [ebp - 0x2cd]
mov dl, byte [ebp + eax - 0x3ec]
mov byte [ebp + ecx - 0x3ec], dl
movzx eax, byte [ebp - 0x409]
movzx ecx, byte [ebp - 0x2e9]
mov dl, byte [ebp + eax - 0x3ec]
mov byte [ebp + ecx - 0x3ec], dl
movzx eax, byte [ebp - 0x41f]
movzx ecx, byte [ebp - 0x409]
mov dl, byte [ebp + eax - 0x3ec]
mov byte [ebp + ecx - 0x3ec], dl
movzx eax, byte [ebp - 0x41f]
mov cl, byte [ebp - 0x4c9]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x4c9]
movzx eax, byte [ebp + edx - 0x3ec]
movzx ecx, byte [ebp - 0x3f5]
add ecx, eax
mov byte [ebp - 0x3f5], cl
movzx edx, byte [ebp - 0x479]
movzx eax, byte [ebp - 0x2e9]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx eax, byte [ebp - 0x41f]
movzx eax, byte [ebp + eax - 0x3ec]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3ec]
xor edx, ecx
movzx eax, byte [ebp - 0x409]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx eax, byte [ebp - 0x2cd]
movzx eax, byte [ebp + eax - 0x3ec]
add ecx, eax
movzx eax, byte [ebp - 0x3f5]
movzx eax, byte [ebp + eax - 0x3ec]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3ec]
movzx eax, byte [ebp + ecx - 0x3ec]
xor edx, eax
mov byte [ebp - 0x409], dl
mov cl, byte [ebp - 0x479]
mov byte [ebp - 0x2cd], cl
mov dl, byte [ebp - 0x409]
mov byte [ebp - 0x4ad], dl
cmp dword [ebp - 0x4a0], 0
jle 0x49b342
movsx ax, byte [ebp - 0x4ad]
mov ecx, dword [ebp - 0x4a0]
mov word [ebp + ecx*2 - 0x27a], ax
mov edx, dword [ebp - 0x4a0]
add edx, 1
mov dword [ebp - 0x4a0], edx
mov eax, dword [ebp - 0x49c]
add eax, 1
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x4a0]
shl ecx, 1
mov dword [ebp - 0x440], ecx
mov edx, dword [ebp - 0x2d8]
add edx, dword [ebp - 0x440]
movzx eax, byte [edx]
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x478], 0xdd
mov ecx, dword [ebp - 0x4a0]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x2d8]
add eax, dword [ebp - 0x488]
movzx ecx, byte [eax]
mov dword [ebp - 0x4d8], ecx
mov dword [ebp - 0x4c4], 0x71
mov edx, dword [ebp - 0x4c8]
sub edx, dword [ebp - 0x478]
mov dword [ebp - 0x4d4], edx
mov eax, dword [ebp - 0x4d8]
sub eax, dword [ebp - 0x4c4]
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x4d4]
shl ecx, 4
mov dword [ebp - 0x4d0], ecx
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x4d0]
or eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x498], eax
mov cl, byte [ebp - 0x498]
mov byte [ebp - 0x479], cl
movzx edx, byte [ebp - 0x2cd]
mov al, byte [ebp + edx - 0x3ec]
mov byte [ebp - 0x4c9], al
movzx ecx, byte [ebp - 0x41f]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx eax, byte [ebp - 0x2e9]
add eax, edx
mov byte [ebp - 0x2e9], al
mov cl, byte [ebp - 0x41f]
add cl, 1
mov byte [ebp - 0x41f], cl
movzx edx, byte [ebp - 0x2e9]
movzx eax, byte [ebp - 0x2cd]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x409]
movzx eax, byte [ebp - 0x2e9]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x41f]
movzx eax, byte [ebp - 0x409]
mov cl, byte [ebp + edx - 0x3ec]
mov byte [ebp + eax - 0x3ec], cl
movzx edx, byte [ebp - 0x41f]
mov al, byte [ebp - 0x4c9]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x4c9]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx eax, byte [ebp - 0x3f5]
add eax, edx
mov byte [ebp - 0x3f5], al
movzx ecx, byte [ebp - 0x479]
movzx edx, byte [ebp - 0x2e9]
movzx eax, byte [ebp + edx - 0x3ec]
movzx edx, byte [ebp - 0x41f]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3ec]
xor ecx, eax
movzx edx, byte [ebp - 0x409]
movzx eax, byte [ebp + edx - 0x3ec]
movzx edx, byte [ebp - 0x2cd]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
movzx edx, byte [ebp - 0x3f5]
movzx edx, byte [ebp + edx - 0x3ec]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp + eax - 0x3ec]
xor ecx, edx
mov byte [ebp - 0x409], cl
mov al, byte [ebp - 0x479]
mov byte [ebp - 0x2cd], al
mov cl, byte [ebp - 0x409]
mov byte [ebp - 0x4ad], cl
cmp dword [ebp - 0x4a0], 0
jle 0x49b59b
movsx dx, byte [ebp - 0x4ad]
mov eax, dword [ebp - 0x4a0]
mov word [ebp + eax*2 - 0x27a], dx
mov ecx, dword [ebp - 0x4a0]
add ecx, 1
mov dword [ebp - 0x4a0], ecx
fld qword [0x9ca618]
fstp qword [ebp - 0x46c]
fld qword [0x9ca610]
fstp qword [ebp - 0x44c]
fld qword [0x9ca608]
fstp qword [ebp - 0x43c]
fld qword [0x9ca600]
fstp qword [ebp - 0x4ac]
fld qword [0x9ca5f8]
fstp qword [ebp - 0x484]
fld qword [0x9ca5f0]
fstp qword [ebp - 0x464]
fld qword [0x9ca5e8]
fstp qword [ebp - 0x434]
fld qword [ebp - 0x484]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x464]
fmul qword [ebp - 0x434]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x43c]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x464]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x44c]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x44c]
fld qword [ebp - 0x4ac]
fadd qword [ebp - 0x434]
fstp qword [ebp - 0x4ac]
fld qword [ebp - 0x484]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x484]
fcomp qword [ebp - 0x464]
fnstsw ax
test ah, 5
jp 0x49b725
fld qword [ebp - 0x484]
fadd qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x484]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x46c]
fadd qword [ebp - 0x43c]
fstp qword [ebp - 0x46c]
fld qword [ebp - 0x46c]
fmul qword [ebp - 0x43c]
fstp qword [ebp - 0x46c]
fld qword [ebp - 0x4ac]
fadd qword [ebp - 0x464]
fstp qword [ebp - 0x4ac]
fld qword [ebp - 0x46c]
fsub qword [ebp - 0x43c]
fstp qword [ebp - 0x46c]
fld qword [ebp - 0x44c]
fmul qword [ebp - 0x4ac]
fstp qword [ebp - 0x44c]
mov edx, dword [ebp - 0x49c]
add edx, 1
mov dword [ebp - 0x49c], edx
jmp 0x49b936
fld qword [ebp - 0x43c]
fsub qword [ebp - 0x484]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x464]
fmul qword [ebp - 0x46c]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x43c]
fsub qword [ebp - 0x484]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x4ac]
fsub qword [ebp - 0x464]
fstp qword [ebp - 0x4ac]
fld qword [ebp - 0x484]
fdiv qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x434]
fadd qword [ebp - 0x44c]
fstp qword [ebp - 0x434]
fld qword [ebp - 0x44c]
fsub qword [ebp - 0x4ac]
fstp qword [ebp - 0x44c]
fld qword [ebp - 0x434]
fdiv qword [ebp - 0x44c]
fstp qword [ebp - 0x434]
fld qword [ebp - 0x484]
fdiv qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x43c]
fmul qword [ebp - 0x484]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x4ac]
fsub qword [ebp - 0x464]
fstp qword [ebp - 0x4ac]
fld qword [ebp - 0x4ac]
fmul qword [ebp - 0x464]
fstp qword [ebp - 0x4ac]
fld qword [ebp - 0x484]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x484]
fdiv qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x434]
fcomp qword [ebp - 0x484]
fnstsw ax
test ah, 5
jp 0x49b8b8
fld qword [ebp - 0x484]
fdiv qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x484]
fdiv qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x434]
fdiv qword [ebp - 0x44c]
fstp qword [ebp - 0x434]
fld qword [ebp - 0x46c]
fdiv qword [ebp - 0x43c]
fstp qword [ebp - 0x46c]
fld qword [ebp - 0x43c]
fdiv qword [ebp - 0x484]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x464]
fdiv qword [ebp - 0x46c]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x484]
fsub qword [ebp - 0x434]
fstp qword [ebp - 0x484]
jmp 0x49b936
fld qword [ebp - 0x44c]
fadd qword [ebp - 0x4ac]
fstp qword [ebp - 0x44c]
fld qword [ebp - 0x43c]
fadd qword [ebp - 0x484]
fstp qword [ebp - 0x43c]
fld qword [ebp - 0x484]
fmul qword [ebp - 0x434]
fstp qword [ebp - 0x484]
fld qword [ebp - 0x464]
fadd qword [ebp - 0x46c]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x434]
fdiv qword [ebp - 0x44c]
fstp qword [ebp - 0x434]
fld qword [ebp - 0x464]
fsub qword [ebp - 0x46c]
fstp qword [ebp - 0x464]
fld qword [ebp - 0x46c]
fsub qword [ebp - 0x43c]
fstp qword [ebp - 0x46c]
mov eax, dword [ebp - 0x4a0]
shl eax, 1
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x2d8]
add ecx, dword [ebp - 0x440]
movzx edx, byte [ecx]
mov dword [ebp - 0x4c8], edx
mov dword [ebp - 0x478], 0xdd
mov eax, dword [ebp - 0x4a0]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x2d8]
add edx, dword [ebp - 0x488]
movzx eax, byte [edx]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4c4], 0x71
mov ecx, dword [ebp - 0x4c8]
sub ecx, dword [ebp - 0x478]
mov dword [ebp - 0x4d4], ecx
mov edx, dword [ebp - 0x4d8]
sub edx, dword [ebp - 0x4c4]
mov dword [ebp - 0x458], edx
mov eax, dword [ebp - 0x4d4]
shl eax, 4
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x458]
mov dword [ebp - 0x4c0], ecx
mov edx, dword [ebp - 0x4d0]
or edx, dword [ebp - 0x4c0]
mov dword [ebp - 0x498], edx
mov al, byte [ebp - 0x498]
mov byte [ebp - 0x479], al
movzx ecx, byte [ebp - 0x2cd]
mov dl, byte [ebp + ecx - 0x3ec]
mov byte [ebp - 0x4c9], dl
movzx eax, byte [ebp - 0x41f]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp - 0x2e9]
add edx, ecx
mov byte [ebp - 0x2e9], dl
mov al, byte [ebp - 0x41f]
add al, 1
mov byte [ebp - 0x41f], al
movzx ecx, byte [ebp - 0x2e9]
movzx edx, byte [ebp - 0x2cd]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x409]
movzx edx, byte [ebp - 0x2e9]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x41f]
movzx edx, byte [ebp - 0x409]
mov al, byte [ebp + ecx - 0x3ec]
mov byte [ebp + edx - 0x3ec], al
movzx ecx, byte [ebp - 0x41f]
mov dl, byte [ebp - 0x4c9]
mov byte [ebp + ecx - 0x3ec], dl
movzx eax, byte [ebp - 0x4c9]
movzx ecx, byte [ebp + eax - 0x3ec]
movzx edx, byte [ebp - 0x3f5]
add edx, ecx
mov byte [ebp - 0x3f5], dl
movzx eax, byte [ebp - 0x479]
movzx ecx, byte [ebp - 0x2e9]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx ecx, byte [ebp - 0x41f]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3ec]
xor eax, edx
movzx ecx, byte [ebp - 0x409]
movzx edx, byte [ebp + ecx - 0x3ec]
movzx ecx, byte [ebp - 0x2cd]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
movzx ecx, byte [ebp - 0x3f5]
movzx ecx, byte [ebp + ecx - 0x3ec]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3ec]
movzx ecx, byte [ebp + edx - 0x3ec]
xor eax, ecx
mov byte [ebp - 0x409], al
mov dl, byte [ebp - 0x479]
mov byte [ebp - 0x2cd], dl
mov al, byte [ebp - 0x409]
mov byte [ebp - 0x4ad], al
cmp dword [ebp - 0x4a0], 0
jle 0x49bb72
movsx cx, byte [ebp - 0x4ad]
mov edx, dword [ebp - 0x4a0]
mov word [ebp + edx*2 - 0x27a], cx
xor eax, eax
mov word [ebp - 0x270], ax
jmp 0x49bbb3
mov dword [ebp - 0x4dc], 0
jmp 0x49bb98
mov ecx, dword [ebp - 0x4dc]
add ecx, 1
mov dword [ebp - 0x4dc], ecx
cmp dword [ebp - 0x4dc], 5
jge 0x49bbb3
xor edx, edx
mov eax, dword [ebp - 0x4dc]
mov word [ebp + eax*2 - 0x278], dx
jmp 0x49bb89
lea ecx, [ebp - 0x26c]
push ecx
lea edx, [ebp - 0x278]
push edx
mov eax, dword [ebp - 0x5b4]
mov ecx, dword [eax + 0x14]
call ecx
mov dword [ebp - 0x2c8], eax
lea ecx, [ebp - 0x1c]
call fcn.004e2ed0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, dword [ebp - 0x5b4]
call fcn.004980f0
lea edx, [ebp - 0x240]
push edx
lea ecx, [ebp - 0x514]
call fcn.00430b20
mov byte [ebp - 4], 1
push fcn.0095f29e
lea eax, [ebp - 0x55c]
push eax
lea ecx, [ebp - 0x514]
call fcn.00449150
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x560]
push edx
lea ecx, [ebp - 0x514]
call fcn.00449170
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x564]
push ecx
lea ecx, [ebp - 0x514]
call fcn.00449150
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x568]
push eax
call fcn.004491f0
add esp, 0x14
lea ecx, [ebp - 0x56c]
push ecx
lea ecx, [ebp - 0x514]
call fcn.00449170
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x570]
push eax
lea ecx, [ebp - 0x514]
call fcn.00449150
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x4f8]
call fcn.004943a0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54c]
call fcn.00472fa0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x27c]
cdq
push 0
push 4
push edx
push eax
call fcn.0095e560
push eax
lea edx, [ebp - 0x2a4]
push edx
lea ecx, [ebp - 0x54c]
call fcn.00472b20
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x54c]
call fcn.00473150
lea ecx, [ebp - 0x54c]
call fcn.00472bd0
mov dword [ebp - 0x550], 0
jmp 0x49bd0c
mov ecx, dword [ebp - 0x550]
add ecx, 1
mov dword [ebp - 0x550], ecx
lea ecx, [ebp - 0x1c]
call fcn.00493a50
cmp dword [ebp - 0x550], eax
jae 0x49bdd5
mov dword [ebp - 0x554], 0
jmp 0x49bd3b
mov edx, dword [ebp - 0x554]
add edx, 1
mov dword [ebp - 0x554], edx
mov eax, dword [ebp - 0x550]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0045a390
mov ecx, dword [eax]
add ecx, 4
call fcn.00493a50
cmp dword [ebp - 0x554], eax
jae 0x49bdd0
lea ecx, [ebp - 0x54c]
call fcn.0044d8e0
push eax
mov ecx, dword [ebp - 0x554]
push ecx
mov edx, dword [ebp - 0x550]
push edx
lea ecx, [ebp - 0x1c]
call fcn.0045a390
mov ecx, dword [eax]
add ecx, 4
call fcn.0045a390
mov ecx, dword [eax]
call fcn.004732f0
mov byte [ebp - 0x555], al
movzx eax, byte [ebp - 0x555]
test eax, eax
je 0x49bdcb
movzx ebx, byte [ebp - 0x2b5]
mov ecx, dword [ebp - 0x550]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0045a390
mov edx, dword [eax]
xor eax, eax
cmp dword [edx], 0x1000000
setne al
and ebx, eax
mov byte [ebp - 0x2b5], bl
jmp 0x49bd2c
jmp 0x49bcfd
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54c]
call fcn.0045a490
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4f8]
call fcn.004b4410
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x514]
call fcn.0042f920
lea ecx, [ebp - 0x26c]
push ecx
mov edx, dword [ebp - 0x2c8]
push edx
mov eax, dword [ebp - 0x5b4]
mov ecx, dword [eax + 0x18]
call ecx
test eax, eax
jne 0x49bbfe
mov dl, byte [ebp - 0x2b5]
mov byte [ebp - 0x571], dl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0045a4c0
mov al, byte [ebp - 0x571]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret