Function at 0x49efe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6c
push ebx
push ebp
mov ebp, dword [esp + 0x78]
push edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], 0
mov eax, dword [ebp]
mov dword [esp + 0x68], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], 0
mov ecx, dword [eax]
mov al, byte [ebp + 0x2c]
movzx edx, al
mov dword [esp + 0x6c], ecx
mov byte [esp + 0xe], al
mov dword [esp + 0x28], edx
cmp edx, 1
ja 0x49f031
mov edi, 1
jmp 0x49f041
cmp edx, 2
mov edi, 0xa
mov eax, 5
cmove edi, eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x48], edi
test eax, eax
je 0x49f05b
cmp word [esp + 0x80], 0
je 0x49f05b
mov ebx, dword [eax]
jmp 0x49f05d
xor ebx, ebx
lea eax, [edx*4]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x5c], eax
add eax, 0x20
imul eax, edi
add eax, ebx
add eax, eax
cdq
push edx
push eax
push ecx
call fcn.00455fb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x49f096
pop edi
pop ebp
lea eax, [edx + 7]
pop ebx
add esp, 0x6c
ret
mov eax, edi
mov dword [esp + 0x24], edx
shl eax, 5
lea ecx, [eax + edx]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [esp + 0x14], ecx
mov dword [ecx + 0x1c], 0
add ecx, eax
push esi
mov esi, edx
lea eax, [edi + edi]
mov edi, dword [esp + 0x60]
add edx, 0x18
lea esp, [esp]
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, edi
test eax, eax
jg 0x49f0f0
test ebx, ebx
je 0x49f113
lea eax, [ebx + ebx]
mov dword [esp + 0x64], ecx
push eax
push 0
push ecx
call fcn.004ac5e0
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov ecx, 0x30
mov eax, dword [eax + 0x84]
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [esp + 0x18]
mov word [eax + 0x10], cx
mov eax, 1
mov ch, byte [esp + 0x12]
mov dword [esp + 0x5c], eax
test ebx, ebx
je 0x49f159
movzx eax, bl
or edx, 0xffffffff
mov ebx, dword [esp + 0x18]
test ch, ch
cmovne eax, edx
mov byte [ebx + 0x16], al
mov eax, 1
jmp 0x49f15d
mov ebx, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x34], edi
test ch, ch
je 0x49f7e3
mov edx, ebp
mov ebp, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x49f6a0
lea ebp, [ebx + 0x10]
mov dword [esp + 0x20], ebp
mov ebx, dword [edx + 0x40]
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x49f680
mov al, byte [ebp + 6]
mov edx, dword [ebp - 0x10]
mov ecx, edx
mov esi, dword [ebp - 0xc]
not ecx
and ecx, dword [ebx]
mov byte [esp + 0x13], al
mov eax, esi
not eax
mov dword [esp + 0x74], 0
and eax, dword [ebx + 4]
or ecx, eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
jne 0x49f662
mov ecx, edx
mov eax, esi
and ecx, dword [ebx + 8]
and eax, dword [ebx + 0xc]
or ecx, eax
jne 0x49f662
test dword [ebx + 0x24], 0x4000
je 0x49f1f5
cmp word [ebp], 3
jl 0x49f662
movzx ebp, word [ebp]
mov ax, word [ebx + 0x14]
movzx edi, word [ebx + 0x12]
add ax, bp
movzx esi, ax
movsx ecx, di
movsx edx, si
cmp di, si
jl 0x49f237
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x49f21d
mov esi, edi
jmp 0x49f259
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x49f229
lea eax, [edi + 1]
jmp 0x49f256
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x49f256
lea eax, [ecx + 0x31]
cmp edx, eax
jg 0x49f259
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x49f24a
lea eax, [esi + 1]
jmp 0x49f256
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, si
movzx esi, ax
mov eax, dword [esp + 0x20]
mov bx, si
mov dword [esp + 0x14], esi
movsx ecx, bx
movzx edi, word [eax + 4]
movsx edx, di
cmp bx, di
jl 0x49f29b
lea eax, [edx + 0x31]
cmp ecx, eax
jg 0x49f2c8
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x49f284
inc esi
jmp 0x49f2c1
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add bx, ax
mov word [esp + 0x14], bx
mov esi, dword [esp + 0x14]
jmp 0x49f2c8
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x49f2a6
mov esi, edi
jmp 0x49f2c1
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x49f2b2
lea eax, [edi + 1]
jmp 0x49f2be
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx esi, ax
mov dword [esp + 0x14], esi
mov bx, si
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov ax, word [ecx + 0x16]
or edi, dword [ecx + 0xc]
add ax, bp
mov ebp, dword [esp + 0x3c]
or ebp, dword [ecx + 8]
movzx eax, ax
mov dword [esp + 0x68], eax
mov ah, byte [esp + 0x13]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
test ah, ah
jns 0x49f493
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x74]
push eax
push ecx
push dword [esp + 0x3c]
movzx eax, word [edx + 0x28]
push eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
push eax
push dword [edx + 8]
push edx
call fcn.0049e700
add esp, 0x1c
mov byte [esp + 0x13], al
test al, al
mov eax, dword [esp + 0x78]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], eax
jns 0x49f4a5
sub esi, 2
movzx edx, bx
mov dword [esp + 0x14], esi
mov bx, si
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov esi, eax
cmp dword [esp + 0x1c], ecx
jle 0x49f383
mov ah, byte [esp + 0x13]
cmp dword [esi], ebp
jne 0x49f375
cmp dword [esi + 4], edi
jne 0x49f375
mov al, byte [esi + 0x16]
xor al, ah
jge 0x49f624
inc ecx
add esi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x49f361
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x4c]
cmp ecx, edi
jl 0x49f3a9
mov ebp, dword [esp + 0x58]
cmp dx, bp
jg 0x49f709
jne 0x49f3a9
cmp bx, word [esp + 0x54]
jge 0x49f709
cmp ecx, edi
mov esi, ecx
cmovge esi, dword [esp + 0x50]
shl esi, 5
add esi, eax
cmp ecx, edi
lea eax, [ecx + 1]
cmovge eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or eax, dword [edi - 0xc]
or ecx, dword [edi - 0x10]
mov edi, dword [esp + 0x68]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x13]
mov byte [esi + 0x16], al
mov eax, dword [esp + 0x34]
mov word [esi + 0x10], di
mov dword [esi], ecx
mov word [esi + 0x12], dx
lea edi, [eax*4]
mov word [esi + 0x14], bx
push edi
push dword [ebp + 8]
push dword [esi + 0x18]
call fcn.004ac060
mov eax, dword [esi + 0x18]
add esp, 0xc
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov dword [edi + eax], ebx
mov edi, dword [esp + 0x4c]
cmp ecx, edi
jl 0x49f666
mov eax, dword [esp + 0x28]
mov ecx, 1
mov dword [esp + 0x50], 0
movzx ebp, word [eax + 0x12]
movzx esi, word [eax + 0x10]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], esi
cmp edi, ecx
jbe 0x49f65e
add eax, 0x34
movzx edx, word [eax - 2]
cmp dx, bp
jg 0x49f475
jne 0x49f47e
cmp word [eax], si
jle 0x49f47e
movzx esi, word [eax]
mov ebp, edx
mov dword [esp + 0x50], ecx
inc ecx
add eax, 0x20
cmp ecx, edi
jl 0x49f465
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], ebp
jmp 0x49f65e
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
mov dword [esp + 0x44], eax
mov eax, dword [ecx - 4]
mov dword [esp + 0x48], eax
movzx ecx, byte [esp + 0x13]
cmp ecx, dword [esp + 0x38]
jge 0x49f342
mov eax, dword [esp + 0x64]
lea eax, [eax + ecx*2]
mov dword [esp + 0x14], eax
movzx eax, word [eax]
mov edx, eax
test ax, ax
jne 0x49f571
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x38]
movzx edi, ax
mov eax, ebp
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv ebp
cdq
push edx
push eax
call fcn.00466c80
mov bp, ax
add esp, 8
mov eax, dword [esp + 0x80]
add bp, word [esp + 0x84]
movzx edx, word [eax + 0x28]
test edx, 0x4000
je 0x49f522
movzx ecx, word [eax + 0x2a]
mov eax, dword [esp + 0x84]
cmp cx, ax
jge 0x49f529
mov edi, ecx
jmp 0x49f53d
mov eax, dword [esp + 0x84]
test edx, 0x100
je 0x49f53d
cmp ax, 0xa
jle 0x49f546
add eax, 0xfffffff6
movzx edi, ax
movzx eax, di
cmp di, 0xa
jg 0x49f54b
movzx eax, bp
jmp 0x49f560
cwde
cdq
push edx
push eax
call fcn.00466c80
lea ecx, [ebp - 0x21]
add esp, 8
add ax, cx
movzx eax, ax
mov ecx, dword [esp + 0x14]
add eax, 0xffffffce
mov ebp, dword [esp + 0x3c]
movzx edx, ax
mov word [ecx], ax
movzx edi, dx
movsx ecx, bx
movsx edx, di
cmp bx, di
jl 0x49f5d2
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x49f598
mov edi, dword [esp + 0x40]
movzx eax, bx
add eax, 5
movzx edx, ax
jmp 0x49f34f
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x49f5b4
mov edi, dword [esp + 0x40]
lea eax, [esi + 1]
movzx eax, ax
add eax, 5
movzx edx, ax
jmp 0x49f34f
mov edi, dword [esp + 0x40]
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, bx
movzx eax, ax
add eax, 5
movzx edx, ax
jmp 0x49f34f
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x49f5ea
mov eax, edi
mov edi, dword [esp + 0x40]
add eax, 5
movzx edx, ax
jmp 0x49f34f
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x49f606
lea eax, [edi + 1]
mov edi, dword [esp + 0x40]
movzx eax, ax
add eax, 5
movzx edx, ax
jmp 0x49f34f
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, di
mov edi, dword [esp + 0x40]
movzx eax, ax
add eax, 5
movzx edx, ax
jmp 0x49f34f
cmp ecx, dword [esp + 0x1c]
jge 0x49f37f
movzx eax, word [esi + 0x12]
cmp ax, dx
jl 0x49f65a
jne 0x49f3c3
movzx eax, word [esi + 0x10]
mov edi, dword [esp + 0x68]
cmp ax, di
jl 0x49f65a
jne 0x49f3c3
cmp word [esi + 0x14], bx
jg 0x49f3c3
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebx + 0x34]
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x49f195
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x5c]
add ebp, 0x20
sub eax, 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x5c], eax
jne 0x49f186
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
inc edi
mov ebx, esi
mov esi, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], edi
cmp edi, ebp
jl 0x49f171
test ecx, ecx
jne 0x49f7dc
push str.no_query_solution
push dword [esp + 0x70]
call fcn.00457ce0
mov ecx, dword [esp + 0x78]
add esp, 8
test ecx, ecx
je 0x49f768
cmp dword [ecx + 0x200], 0
je 0x49f716
push dword [esp + 0x30]
push ecx
call fcn.0043b030
add esp, 8
mov eax, 1
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
jmp 0x49f666
mov ebx, dword [esp + 0x30]
cmp ebx, dword [ecx + 0x154]
jae 0x49f76c
cmp ebx, dword [ecx + 0x14c]
jb 0x49f745
mov eax, dword [ecx + 0x148]
pop esi
pop edi
mov dword [ebx], eax
mov eax, 1
pop ebp
mov dword [ecx + 0x148], ebx
pop ebx
add esp, 0x6c
ret
cmp ebx, dword [ecx + 0x150]
jb 0x49f76c
mov eax, dword [ecx + 0x140]
pop esi
pop edi
mov dword [ebx], eax
mov eax, 1
pop ebp
mov dword [ecx + 0x140], ebx
pop ebx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x30]
cmp dword [0x4e6008], 0
je 0x49f7c5
mov eax, dword [0x4e86d8]
test eax, eax
je 0x49f788
push eax
call dword [0x4e6058]
add esp, 4
push ebx
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push ebx
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x49f7cf
push eax
call dword [0x4e6060]
add esp, 4
mov eax, 1
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x4e602c]
add esp, 4
pop esi
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6c
ret
mov ebp, dword [esp + 0x80]
cmp eax, 1
jle 0x49f807
lea ecx, [ebx + 0x20]
lea edx, [eax - 1]
mov edi, edi
mov ax, word [ebx + 0x12]
cmp ax, word [ecx + 0x12]
cmovg ebx, ecx
add ecx, 0x20
sub edx, 1
jne 0x49f7f0
mov dword [esp + 0x18], ebx
xor esi, esi
cmp byte [esp + 0x12], 0
jbe 0x49f846
lea edx, [ebp + 0x324]
mov eax, dword [ebx + 0x18]
lea edx, [edx + 0x58]
mov eax, dword [eax + esi*4]
inc esi
mov dword [edx - 0x44], eax
mov al, byte [eax + 0x10]
mov byte [edx - 0x58], al
movzx eax, al
lea ecx, [eax + eax*8]
mov eax, dword [ebp + 4]
mov eax, dword [eax + ecx*8 + 0x34]
mov ecx, dword [esp + 0x2c]
mov dword [edx - 0x88], eax
cmp esi, ecx
jl 0x49f816
jmp 0x49f84a
mov ecx, dword [esp + 0x2c]
mov ax, word [ebp + 0x28]
mov edx, 0x180
and ax, dx
mov edx, 0x100
cmp ax, dx
jne 0x49f8a8
cmp byte [ebp + 0x2f], 0
jne 0x49f8a8
cmp word [esp + 0x84], 0
je 0x49f8a8
lea eax, [esp + 0x74]
push eax
mov eax, dword [ebx + 0x18]
lea edx, [ecx*4]
push dword [eax + edx - 4]
lea eax, [ecx - 1]
push eax
push 0x80
push ebx
push dword [ebp + 0xc]
push ebp
call fcn.0049e700
movsx ecx, al
add esp, 0x1c
mov eax, dword [ebp + 0xc]
cmp ecx, dword [eax]
jne 0x49f8a8
mov byte [ebp + 0x2f], 2
mov ebx, dword [ebp + 0x30]
mov edi, dword [ebp + 8]
and ebx, 0xfffffffb
mov dword [ebp + 0x30], ebx
test edi, edi
je 0x49f9f5
mov ecx, dword [esp + 0x18]
movzx edx, word [ebp + 0x28]
mov al, byte [ecx + 0x16]
mov byte [esp + 0x13], al
test dl, dl
jns 0x49f8e3
movsx eax, al
cmp eax, dword [edi]
jne 0x49f8da
mov byte [ebp + 0x2f], 2
mov eax, edx
mov esi, edi
jmp 0x49f990
mov byte [ebp + 0x2d], al
mov esi, edi
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp + 0x4c], ecx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0x48], eax
test cl, cl
jg 0x49fa2d
cmp byte [esp + 0x12], 0
mov byte [ebp + 0x2d], 0
jbe 0x49f988
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x18]
mov ebx, dword [eax + ecx - 4]
mov eax, dword [ebx + 0x24]
and eax, 0x104
cmp eax, 0x104
setne cl
bt dword [ebx + 0x24], 0xc
setae al
test al, cl
je 0x49f988
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0
push eax
mov eax, dword [esp + 0x30]
push ebx
dec eax
mov dword [esp + 0x80], 0
push eax
push 0x800
push dword [esp + 0x28]
push edi
push ebp
call fcn.0049e700
mov esi, dword [ebp + 8]
add esp, 0x1c
movsx eax, al
cmp eax, dword [esi]
jne 0x49f988
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
or dword [ebp + 0x30], 4
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], ecx
movzx eax, word [ebp + 0x28]
mov ecx, dword [esp + 0x18]
test eax, 0x200
je 0x49f9f5
movsx eax, byte [ebp + 0x2d]
cmp eax, dword [esi]
jne 0x49f9f5
cmp byte [esp + 0x12], 0
jbe 0x49f9f5
mov edx, dword [esp + 0x60]
lea eax, [esp + 0x74]
push eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
push dword [eax + edx - 4]
mov eax, dword [esp + 0x34]
dec eax
push eax
push 0
push ecx
push esi
push ebp
call fcn.0049e700
movsx ecx, al
add esp, 0x1c
mov eax, dword [ebp + 8]
cmp ecx, dword [eax]
jne 0x49f9f5
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
or dword [ebp + 0x30], 8
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
mov ax, word [eax + 0x10]
mov word [ebp + 0x34], ax
test ecx, ecx
je 0x49faaa
cmp dword [ecx + 0x200], 0
je 0x49fa5e
push dword [esp + 0x30]
push ecx
call fcn.0043b030
add esp, 8
xor eax, eax
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ch, byte [esp + 0x12]
mov eax, edx
test ch, ch
je 0x49f98c
mov esi, edi
cmp cl, 1
jne 0x49f98c
mov ecx, dword [esp + 0x18]
test dl, 3
je 0x49f990
or ebx, 4
mov dword [ebp + 0x30], ebx
jmp 0x49f990
mov ebx, dword [esp + 0x30]
cmp ebx, dword [ecx + 0x154]
jae 0x49faae
cmp ebx, dword [ecx + 0x14c]
jb 0x49fa8a
mov eax, dword [ecx + 0x148]
pop esi
pop edi
mov dword [ebx], eax
xor eax, eax
pop ebp
mov dword [ecx + 0x148], ebx
pop ebx
add esp, 0x6c
ret
cmp ebx, dword [ecx + 0x150]
jb 0x49faae
mov eax, dword [ecx + 0x140]
pop esi
pop edi
mov dword [ebx], eax
xor eax, eax
pop ebp
mov dword [ecx + 0x140], ebx
pop ebx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x30]
cmp dword [0x4e6008], 0
je 0x49fb04
mov eax, dword [0x4e86d8]
test eax, eax
je 0x49faca
push eax
call dword [0x4e6058]
add esp, 4
push ebx
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push ebx
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x49fb0e
push eax
call dword [0x4e6060]
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x4e602c]
add esp, 4
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret